Chinaunix首页 | 论坛 | 博客
  • 博客访问: 39890
  • 博文数量: 4
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 56
  • 用 户 组: 普通用户
  • 注册时间: 2015-01-02 15:50
文章分类
文章存档

2015年(4)

我的朋友
最近访客

分类: Java

2015-01-02 15:59:51

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://supercharles888.blog.51cto.com/609344/1588043

引入:

上文主要讲解了JDI的连接模块来建立Debugger到Target VM之间的连接,这里主要讲解事件请求和处理模块。它们都在com.sun.jdi.event和com.sun.jdi.request包中。


分析:


Part 1:查看JDI中定义的事件类型

JDI中事件的接口叫Event . 

1
2
3
4
public abstract interface Event extends Mirror
{
  public abstract EventRequest request();
}

它定义了18种具体的事件类型,如下:

ClassPrepareEvent 装载某个指定的类所引发的事件
ClassUnloadEvent 卸载某个指定的类所引发的事件
BreakingpointEvent 设置断点所引发的事件
ExceptionEvent 目标虚拟机运行中抛出指定异常所引发的事件
MethodEntryEvent 进入某个指定方法体时引发的事件
MethodExitEvent 某个指定方法执行完成后引发的事件
MonitorContendedEnteredEvent 线程已经进入某个指定 Monitor 资源所引发的事件
MonitorContendedEnterEvent 线程将要进入某个指定 Monitor 资源所引发的事件
MonitorWaitedEvent 线程完成对某个指定 Monitor 资源等待所引发的事件
MonitorWaitEvent 线程开始等待对某个指定 Monitor 资源所引发的事件
StepEvent 目标应用程序执行下一条指令或者代码行所引发的事件
AccessWatchpointEvent 查看类的某个指定 Field 所引发的事件
ModificationWatchpointEvent 修改类的某个指定 Field 值所引发的事件
ThreadDeathEvent 某个指定线程运行完成所引发的事件
ThreadStartEvent 某个指定线程开始运行所引发的事件
VMDeathEvent 目标虚拟机停止运行所以的事件
VMDisconnectEvent 目标虚拟机与调试器断开链接所引发的事件
VMStartEvent 目标虚拟机初始化时所引发的事件


Part 2:事件集的概念

事件集是事件发送的最小单位,并且事件集一旦被创建,则不可以被修改。

1
2
3
4
5
6
7
8
public abstract interface EventSet extends Mirror, Set
{
  public abstract int suspendPolicy();
 
  public abstract EventIterator eventIterator();
 
  public abstract void resume();
}

它也提供了迭代器来访问事件集内的事件。


阅读(145) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~