- 所有父级接口:
Mirror
EventRequest 的创建和删除。此接口的单个实现者存在于特定 VM 中,并通过 VirtualMachine.eventRequestManager() 访问
- 自从:
- 1.3
- 参见:
-
方法总结
修饰符和类型方法描述返回已启用和已禁用访问观察点请求的不可修改列表。返回启用和禁用断点请求的不可修改列表。返回已启用和已禁用的类准备请求的不可修改列表。返回已启用和已禁用类卸载请求的不可修改列表。创建一个新的禁用观察点,观察对指定字段的访问。createBreakpointRequest(Location location) 创建一个新的禁用BreakpointRequest。创建一个新的禁用ClassPrepareRequest。创建一个新的禁用ClassUnloadRequest。createExceptionRequest(ReferenceType refType, boolean notifyCaught, boolean notifyUncaught) 创建一个新的禁用ExceptionRequest。创建一个新的禁用MethodEntryRequest。创建一个新的禁用MethodExitRequest。创建一个新的禁用观察点,观察对指定字段的访问。创建一个新的禁用MonitorContendedEnteredRequest。创建一个新的禁用MonitorContendedEnterRequest。创建一个新的禁用MonitorWaitedRequest。创建一个新的禁用MonitorWaitRequest。createStepRequest(ThreadReference thread, int size, int depth) 创建一个新的禁用StepRequest。创建一个新的禁用ThreadDeathRequest。创建一个新的禁用ThreadStartRequest。创建一个新的禁用VMDeathRequest。void移除由此 EventRequestManager 管理的所有断点。voiddeleteEventRequest(EventRequest eventRequest) 移除一个 eventRequest。voiddeleteEventRequests(List<? extends EventRequest> eventRequests) 删除EventRequest的列表。返回已启用和已禁用异常请求的不可修改列表。返回已启用和已禁用方法输入请求的不可修改列表。返回已启用和已禁用方法退出请求的不可修改列表。返回已启用和已禁用的修改观察点请求的不可修改列表。返回已启用和已禁用监视器争用输入请求的不可修改列表。返回已启用和已禁用监视器争用输入请求的不可修改列表。返回已启用和已禁用监视器等待请求的不可修改列表。返回已启用和已禁用的监视器等待请求的不可修改列表。返回已启用和已禁用步骤请求的不可修改列表。返回启用和禁用的线程死亡请求的不可修改列表。返回启用和禁用的线程启动请求的不可修改列表。返回已启用和已禁用的 VM 死亡请求的不可修改列表。在接口 com.sun.jdi.Mirror 中声明的方法
toString, virtualMachine
-
方法详情
-
createClassPrepareRequest
ClassPrepareRequest createClassPrepareRequest()创建一个新的禁用ClassPrepareRequest。新的事件请求被添加到此 EventRequestManager 管理的列表中。使用EventRequest.enable()激活此事件请求。- 返回:
-
创建的
ClassPrepareRequest
-
createClassUnloadRequest
ClassUnloadRequest createClassUnloadRequest()创建一个新的禁用ClassUnloadRequest。新的事件请求被添加到此 EventRequestManager 管理的列表中。使用EventRequest.enable()激活此事件请求。- 返回:
-
创建的
ClassUnloadRequest
-
createThreadStartRequest
ThreadStartRequest createThreadStartRequest()创建一个新的禁用ThreadStartRequest。新的事件请求被添加到此 EventRequestManager 管理的列表中。使用EventRequest.enable()激活此事件请求。- 返回:
-
创建的
ThreadStartRequest
-
createThreadDeathRequest
ThreadDeathRequest createThreadDeathRequest()创建一个新的禁用ThreadDeathRequest。新的事件请求被添加到此 EventRequestManager 管理的列表中。使用EventRequest.enable()激活此事件请求。- 返回:
-
创建的
ThreadDeathRequest
-
createExceptionRequest
ExceptionRequest createExceptionRequest(ReferenceType refType, boolean notifyCaught, boolean notifyUncaught) 创建一个新的禁用ExceptionRequest。新的事件请求被添加到此 EventRequestManager 管理的列表中。使用EventRequest.enable()激活此事件请求。可以为异常事件选择特定的异常类型及其子类。可以选择捕获的异常、未捕获的异常或两者。但是请注意,在抛出异常时,并不总是能够确定它是否真正被捕获。有关详细信息,请参阅
ExceptionEvent.catchLocation()。- 参数:
refType- 如果非空,则指定将报告作为 refType 实例的异常。注意:这将包括子类型的实例。如果为空,将报告所有实例notifyCaught- 如果为 true,将报告捕获的异常。notifyUncaught- 如果为真,将报告未捕获的异常。- 返回:
-
创建的
ExceptionRequest
-
createMethodEntryRequest
MethodEntryRequest createMethodEntryRequest()创建一个新的禁用MethodEntryRequest。新的事件请求被添加到此 EventRequestManager 管理的列表中。使用EventRequest.enable()激活此事件请求。- 返回:
-
创建的
MethodEntryRequest
-
createMethodExitRequest
MethodExitRequest createMethodExitRequest()创建一个新的禁用MethodExitRequest。新的事件请求被添加到此 EventRequestManager 管理的列表中。使用EventRequest.enable()激活此事件请求。- 返回:
-
创建的
MethodExitRequest
-
createMonitorContendedEnterRequest
MonitorContendedEnterRequest createMonitorContendedEnterRequest()创建一个新的禁用MonitorContendedEnterRequest。新的事件请求被添加到此 EventRequestManager 管理的列表中。使用EventRequest.enable()激活此事件请求。并非所有目标虚拟机都支持此操作。使用VirtualMachine.canRequestMonitorEvents()确定是否支持该操作。- 返回:
-
创建的
MonitorContendedEnterRequest - 抛出:
UnsupportedOperationException- 如果目标 VM 不支持此操作。- 自从:
- 1.6
-
createMonitorContendedEnteredRequest
MonitorContendedEnteredRequest createMonitorContendedEnteredRequest()创建一个新的禁用MonitorContendedEnteredRequest。新的事件请求被添加到此 EventRequestManager 管理的列表中。使用EventRequest.enable()激活此事件请求。并非所有目标虚拟机都支持此操作。使用VirtualMachine.canRequestMonitorEvents()确定是否支持该操作。- 返回:
-
创建的
MonitorContendedEnteredRequest - 抛出:
UnsupportedOperationException- 如果目标 VM 不支持此操作。- 自从:
- 1.6
-
createMonitorWaitRequest
MonitorWaitRequest createMonitorWaitRequest()创建一个新的禁用MonitorWaitRequest。新的事件请求被添加到此 EventRequestManager 管理的列表中。使用EventRequest.enable()激活此事件请求。并非所有目标虚拟机都支持此操作。使用VirtualMachine.canRequestMonitorEvents()确定是否支持该操作。- 返回:
-
创建的
MonitorWaitRequest - 抛出:
UnsupportedOperationException- 如果目标 VM 不支持此操作。- 自从:
- 1.6
-
createMonitorWaitedRequest
MonitorWaitedRequest createMonitorWaitedRequest()创建一个新的禁用MonitorWaitedRequest。新的事件请求被添加到此 EventRequestManager 管理的列表中。使用EventRequest.enable()激活此事件请求。并非所有目标虚拟机都支持此操作。使用VirtualMachine.canRequestMonitorEvents()确定是否支持该操作。- 返回:
-
创建的
MonitorWaitedRequest - 抛出:
UnsupportedOperationException- 如果目标 VM 不支持此操作。- 自从:
- 1.6
-
createStepRequest
创建一个新的禁用StepRequest。新的事件请求被添加到此 EventRequestManager 管理的列表中。使用EventRequest.enable()激活此事件请求。返回的请求将控制仅在指定的
thread步进;所有其他线程将不受影响。每次代码索引更改时,StepRequest.STEP_MIN的size值将生成一个步骤事件。它代表可用的最小步长,通常映射到指令级别。StepRequest.STEP_LINE的size值将在每次源代码行更改时生成一个步骤事件,除非行号信息不可用,在这种情况下,将改为执行 STEP_MIN。例如,在执行已被VirtualMachine.redefineClasses(java.util.Map<? extends com.sun.jdi.ReferenceType, byte[]>)操作废弃的方法期间,没有可用的行号信息。StepRequest.STEP_INTO的depth值将在任何调用的方法中生成步骤事件。StepRequest.STEP_OVER的depth值将步骤事件限制为当前帧或调用者帧。StepRequest.STEP_OUT的depth值将步骤事件限制为仅调用方帧。所有深度限制都与步骤发生之前的调用堆栈相关。每个线程只允许一个待处理的步骤请求。
请注意,典型的调试器会希望在检测到第一步后取消步进。因此,下一行方法将执行以下操作:
EventRequestManager mgr = myVM.{@link VirtualMachine#eventRequestManager eventRequestManager}(); StepRequest request = mgr.createStepRequest(myThread, StepRequest.{@link StepRequest#STEP_LINE STEP_LINE}, StepRequest.{@link StepRequest#STEP_OVER STEP_OVER}); request.{@link EventRequest#addCountFilter addCountFilter}(1); // next step only request.enable(); myVM.{@link VirtualMachine#resume resume}();- 参数:
thread- 要进入的线程size- 步长depth- 步进深度- 返回:
-
创建的
StepRequest - 抛出:
DuplicateRequestException- 如果指定线程已经有待处理的步骤请求。IllegalArgumentException- 如果大小或深度参数包含非法值。
-
createBreakpointRequest
创建一个新的禁用BreakpointRequest。给定的Location必须具有有效(即非负)代码索引。新断点被添加到此 EventRequestManager 管理的列表中。允许在同一位置有多个断点。使用EventRequest.enable()激活此事件请求。- 参数:
location- 新断点的位置。- 返回:
-
创建的
BreakpointRequest - 抛出:
NativeMethodException- 如果位置在本机方法内。
-
createAccessWatchpointRequest
创建一个新的禁用观察点,观察对指定字段的访问。新观察点被添加到此 EventRequestManager 管理的列表中。允许在同一字段上设置多个观察点。使用EventRequest.enable()激活此事件请求。并非所有目标虚拟机都支持此操作。使用
VirtualMachine.canWatchFieldAccess()确定是否支持该操作。- 参数:
field- 值得关注的领域- 返回:
- 创建的观察点
- 抛出:
UnsupportedOperationException- 如果目标虚拟机不支持此操作。
-
createModificationWatchpointRequest
创建一个新的禁用观察点,观察对指定字段的访问。新观察点被添加到此 EventRequestManager 管理的列表中。允许在同一字段上设置多个观察点。使用EventRequest.enable()激活此事件请求。并非所有目标虚拟机都支持此操作。使用
VirtualMachine.canWatchFieldModification()确定是否支持该操作。- 参数:
field- 值得关注的领域- 返回:
- 创建的观察点
- 抛出:
UnsupportedOperationException- 如果目标虚拟机不支持此操作。
-
createVMDeathRequest
VMDeathRequest createVMDeathRequest()创建一个新的禁用VMDeathRequest。新请求被添加到此 EventRequestManager 管理的列表中。使用EventRequest.enable()激活此事件请求。此请求(如果启用)将导致在目标 VM 终止时发送
VMDeathEvent。具有
SUSPEND_ALL挂起策略的 VMDeathRequest 可用于确保在 VM 死亡之前处理传入的SUSPEND_NONE或SUSPEND_EVENT_THREAD事件。如果所有事件处理都在与读取事件集相同的线程中完成,则启用请求就是所需的全部,因为 VM 将暂停,直到恢复包含VMDeathEvent的EventSet。并非所有目标虚拟机都支持此操作。使用
VirtualMachine.canRequestVMDeathEvent()确定是否支持该操作。- 返回:
- 创建的请求
- 抛出:
UnsupportedOperationException- 如果目标 VM 不支持此操作。- 自从:
- 1.4
-
deleteEventRequest
移除一个 eventRequest。 eventRequest 被禁用并从此 EventRequestManager 管理的请求中删除。删除 eventRequest 后,不允许执行任何操作(例如EventRequest.setEnabled(boolean))——尝试这样做通常会导致InvalidRequestStateException。没有其他 eventRequests 受到影响。因为这个方法改变了事件请求的底层列表,试图直接从请求访问器返回的列表中删除(例如下面):
Iterator iter = requestManager.stepRequests().iterator(); while (iter.hasNext()) { requestManager.deleteEventRequest(iter.next()); }可能导致ConcurrentModificationException。而是使用deleteEventRequests(List)或在迭代之前复制列表。- 参数:
eventRequest- 要删除的事件请求
-
deleteEventRequests
删除EventRequest的列表。- 参数:
eventRequests- 要删除的事件请求列表- 参见:
-
deleteAllBreakpoints
void deleteAllBreakpoints()移除由此 EventRequestManager 管理的所有断点。- 参见:
-
stepRequests
List <StepRequest > stepRequests()返回已启用和已禁用步骤请求的不可修改列表。此list是这些请求的实时视图,因此会随着请求的添加和删除而变化。- 返回:
-
所有
StepRequest对象。
-
classPrepareRequests
List <ClassPrepareRequest > classPrepareRequests()返回已启用和已禁用的类准备请求的不可修改列表。此list是这些请求的实时视图,因此会随着请求的添加和删除而变化。- 返回:
-
所有
ClassPrepareRequest对象。
-
classUnloadRequests
List <ClassUnloadRequest > classUnloadRequests()返回已启用和已禁用类卸载请求的不可修改列表。此list是这些请求的实时视图,因此会随着请求的添加和删除而变化。- 返回:
-
所有
ClassUnloadRequest对象。
-
threadStartRequests
List <ThreadStartRequest > threadStartRequests()返回启用和禁用的线程启动请求的不可修改列表。此list是这些请求的实时视图,因此会随着请求的添加和删除而变化。- 返回:
-
所有
ThreadStartRequest对象。
-
threadDeathRequests
List <ThreadDeathRequest > threadDeathRequests()返回启用和禁用的线程死亡请求的不可修改列表。此list是这些请求的实时视图,因此会随着请求的添加和删除而变化。- 返回:
-
所有
ThreadDeathRequest对象。
-
exceptionRequests
List <ExceptionRequest > exceptionRequests()返回已启用和已禁用异常请求的不可修改列表。此list是这些请求的实时视图,因此会随着请求的添加和删除而变化。- 返回:
-
所有
ExceptionRequest对象。
-
breakpointRequests
List <BreakpointRequest > breakpointRequests()返回启用和禁用断点请求的不可修改列表。此list是这些请求的实时视图,因此会随着请求的添加和删除而变化。- 返回:
-
所有
BreakpointRequest对象的列表。
-
accessWatchpointRequests
List <AccessWatchpointRequest > accessWatchpointRequests()返回已启用和已禁用访问观察点请求的不可修改列表。此list是这些请求的实时视图,因此会随着请求的添加和删除而变化。- 返回:
-
所有
AccessWatchpointRequest对象。
-
modificationWatchpointRequests
List <ModificationWatchpointRequest > modificationWatchpointRequests()返回已启用和已禁用的修改观察点请求的不可修改列表。此list是这些请求的实时视图,因此会随着请求的添加和删除而变化。- 返回:
-
所有
ModificationWatchpointRequest对象。
-
methodEntryRequests
List <MethodEntryRequest > methodEntryRequests()返回已启用和已禁用方法输入请求的不可修改列表。此list是这些请求的实时视图,因此会随着请求的添加和删除而变化。- 返回:
-
所有
MethodEntryRequest对象的列表。
-
methodExitRequests
List <MethodExitRequest > methodExitRequests()返回已启用和已禁用方法退出请求的不可修改列表。此list是这些请求的实时视图,因此会随着请求的添加和删除而变化。- 返回:
-
所有
MethodExitRequest对象的列表。
-
monitorContendedEnterRequests
List <MonitorContendedEnterRequest > monitorContendedEnterRequests()返回已启用和已禁用监视器争用输入请求的不可修改列表。此list是这些请求的实时视图,因此会随着请求的添加和删除而变化。- 返回:
-
所有
MonitorContendedEnterRequest对象的列表。 - 自从:
- 1.6
-
monitorContendedEnteredRequests
List <MonitorContendedEnteredRequest > monitorContendedEnteredRequests()返回已启用和已禁用监视器争用输入请求的不可修改列表。此list是这些请求的实时视图,因此会随着请求的添加和删除而变化。- 返回:
-
所有
MonitorContendedEnteredRequest对象的列表。 - 自从:
- 1.6
-
monitorWaitRequests
List <MonitorWaitRequest > monitorWaitRequests()返回已启用和已禁用的监视器等待请求的不可修改列表。此list是这些请求的实时视图,因此会随着请求的添加和删除而变化。- 返回:
-
所有
MonitorWaitRequest对象的列表。 - 自从:
- 1.6
-
monitorWaitedRequests
List <MonitorWaitedRequest > monitorWaitedRequests()返回已启用和已禁用监视器等待请求的不可修改列表。此list是这些请求的实时视图,因此会随着请求的添加和删除而变化。- 返回:
-
所有
MonitorWaitedRequest对象的列表。 - 自从:
- 1.6
-
vmDeathRequests
List <VMDeathRequest > vmDeathRequests()返回已启用和已禁用的 VM 死亡请求的不可修改列表。此list是这些请求的实时视图,因此会随着请求的添加和删除而变化。注意:未经请求的 VMDeathEvent 没有相应的请求。- 返回:
-
所有
VMDeathRequest对象的列表。 - 自从:
- 1.4
-