WEB开发网
开发学院软件开发Java 使用 Java Debug Interface(JDI)调试多线程应用... 阅读

使用 Java Debug Interface(JDI)调试多线程应用程序

 2009-10-10 00:00:00 来源:WEB开发网   
核心提示: 注册事件EventRequestManager 管理事件请求,它支持创建、删除和查询事件请求,使用 Java Debug Interface(JDI)调试多线程应用程序(6),EventRequest 支持三种挂起策略:EventRequest.SUSPEND_ALL : 事件发生时,挂起所有线

注册事件

EventRequestManager 管理事件请求,它支持创建、删除和查询事件请求。EventRequest 支持三种挂起策略:

EventRequest.SUSPEND_ALL : 事件发生时,挂起所有线程

EventRequest.SUSPEND_EVENT_THREAD : 事件发生时,挂起事件源线程

EventRequest.SUSPEND_NONE : 事件发生时,不挂起任何线程

JDI 支持多种类型的 EventRequest,如 ExceptionRequest,MethodEntryRequest,MethodExitRequest,ThreadStartRequest 等,可以参考 文档。

清单 4. 注册事件

EventRequestManager mgr = vm.eventRequestManager(); 
// 注册异常事件 
ExceptionRequest excReq = mgr.createExceptionRequest(null, true, true); 
excReq.setSuspendPolicy(EventRequest.SUSPEND_EVENT_THREAD); 
excReq.enable(); 
// 注册进方法事件 
MethodEntryRequest menr = mgr.createMethodEntryRequest(); 
menr.setSuspendPolicy(EventRequest.SUSPEND_NONE); 
menr.enable(); 
// 注册出方法事件 
MethodExitRequest mexr = mgr.createMethodExitRequest(); 
mexr.setSuspendPolicy(EventRequest.SUSPEND_NONE); 
mexr.enable(); 
// 注册线程启动事件 
ThreadStartRequest tsr = mgr.createThreadStartRequest(); 
tsr.setSuspendPolicy(EventRequest.SUSPEND_EVENT_THREAD); 
tsr.enable(); 
// 注册线程结束事件 
ThreadDeathRequest tdr = mgr.createThreadDeathRequest(); 
tdr.setSuspendPolicy(EventRequest.SUSPEND_EVENT_THREAD); 
tdr.enable(); 

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:使用 Java Debug

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接