- 所有超级接口:
-
Mirror
EventRequest
的操作。在特定VM中只存在一个此接口的实现者,并通过VirtualMachine.eventRequestManager()
进行访问。
- 自版本:
- 1.3
- 参见:
-
Method Summary
Modifier and TypeMethodDescription返回一个不可修改的已启用和已禁用的访问观察点请求列表。返回一个不可修改的已启用和已禁用的断点请求列表。返回一个不可修改的已启用和已禁用的类准备请求列表。返回一个不可修改的已启用和已禁用的类卸载请求列表。创建一个新的已禁用的观察点,用于监视对指定字段的访问。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管理的所有断点。void
deleteEventRequest
(EventRequest eventRequest) 移除一个eventRequest。void
deleteEventRequests
(List<? extends EventRequest> eventRequests) 移除一组EventRequest
。返回一个不可修改的已启用和已禁用的异常请求列表。返回一个不可修改的已启用和已禁用的方法进入请求列表。返回一个不可修改的已启用和已禁用的方法退出请求列表。返回一个不可修改的已启用和已禁用的修改观察点请求列表。返回一个不可修改的已启用和已禁用的监视器进入请求列表。返回一个不可修改的已启用和已禁用的监视器进入请求列表。返回一个不可修改的已启用和已禁用的监视器等待请求列表。返回一个不可修改的已启用和已禁用的监视器等待请求列表。返回一个不可修改的已启用和已禁用的步进请求列表。返回一个不可修改的已启用和已禁用的线程死亡请求列表。返回一个不可修改的已启用和已禁用的线程启动请求列表。返回一个不可修改的已启用和已禁用的VM死亡请求列表。Methods declared in interface com.sun.jdi.Mirror
toString, virtualMachine
-
Method Details
-
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实例的异常。注意: 这将包括子类型的实例。如果为null,则将报告所有实例 -
notifyCaught
- 如果为true,则将报告捕获的异常。 -
notifyUncaught
- 如果为true,则将报告未捕获的异常。 - 返回:
-
创建的
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
- 如果目标虚拟机不支持此操作。 - 自:
- 1.6
-
createMonitorWaitRequest
MonitorWaitRequest createMonitorWaitRequest()创建一个新的禁用的MonitorWaitRequest
。新的事件请求将被添加到此EventRequestManager管理的列表中。使用EventRequest.enable()
来激活此事件请求。并非所有目标虚拟机都支持此操作。使用VirtualMachine.canRequestMonitorEvents()
来确定是否支持该操作。- 返回:
-
创建的
MonitorWaitRequest
- 抛出:
-
UnsupportedOperationException
- 如果目标虚拟机不支持此操作。 - 自:
- 1.6
-
createMonitorWaitedRequest
MonitorWaitedRequest createMonitorWaitedRequest()创建一个新的禁用的MonitorWaitedRequest
。新的事件请求将被添加到此EventRequestManager管理的列表中。使用EventRequest.enable()
来激活此事件请求。并非所有目标虚拟机都支持此操作。使用VirtualMachine.canRequestMonitorEvents()
来确定是否支持该操作。- 返回:
-
创建的
MonitorWaitedRequest
- 抛出:
-
UnsupportedOperationException
- 如果目标虚拟机不支持此操作。 - 自:
- 1.6
-
createStepRequest
创建一个新的禁用的StepRequest
。新的事件请求将被添加到此EventRequestManager管理的列表中。使用EventRequest.enable()
来激活此事件请求。返回的请求将仅控制指定的
thread
中的步进;所有其他线程将不受影响。size
值为StepRequest.STEP_MIN
将在代码索引更改时生成步进事件。它代表可用的最小步进大小,通常映射到指令级别。size
值为StepRequest.STEP_LINE
将在源行更改时生成步进事件,除非行号信息不可用,在这种情况下将执行STEP_MIN。例如,在通过VirtualMachine.redefineClasses(java.util.Map<? extends com.sun.jdi.ReferenceType, byte[]>)
操作使方法过时的执行期间,不会提供行号信息。depth
值为StepRequest.STEP_INTO
将在任何调用的方法中生成步进事件。depth
值为StepRequest.STEP_OVER
将限制步进事件仅限于当前帧或调用者帧。depth
值为StepRequest.STEP_OUT
将限制步进事件仅限于调用者帧。所有深度限制都是相对于步进发生前的调用堆栈。每个线程只允许一个待处理的步进请求。
请注意,典型的调试器在检测到第一个步进后会希望取消步进。因此,下一行方法将执行以下操作:
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); // 仅下一步 request.enable(); myVM.{@link VirtualMachine#resume resume}();
- 参数:
-
thread
- 要进行步进的线程 -
size
- 步进大小 -
depth
- 步进深度 - 返回:
-
创建的
StepRequest
- 抛出:
-
DuplicateRequestException
- 如果指定线程已经有一个待处理的步进请求。 -
IllegalArgumentException
- 如果size或depth参数包含非法值。
-
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()
来激活此事件请求。此请求(如果已启用)将导致在目标虚拟机终止时发送一个
VMDeathEvent
。具有
SUSPEND_ALL
挂起策略的VMDeathRequest可用于确保在VM终止之前处理传入的SUSPEND_NONE
或SUSPEND_EVENT_THREAD
事件。如果所有事件处理都在与读取事件集的同一线程中进行,则只需启用请求即可,因为VM将被挂起,直到包含VMDeathEvent
的EventSet
被恢复。并非所有目标虚拟机都支持此操作。使用
VirtualMachine.canRequestVMDeathEvent()
来确定是否支持该操作。- 返回:
- 创建的请求
- 抛出:
-
UnsupportedOperationException
- 如果目标虚拟机不支持此操作。 - 自:
- 1.4
-
deleteEventRequest
移除一个事件请求。该事件请求被禁用并从此EventRequestManager管理的请求中移除。一旦删除事件请求,将不允许任何操作(例如EventRequest.setEnabled(boolean)
)-尝试这样做通常会导致一个InvalidRequestStateException
。不会影响其他事件请求。因为此方法更改事件请求的基础列表,尝试直接从请求访问器返回的列表中删除(例如下面的代码):
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()返回已启用和已禁用的步进请求的不可修改列表。此列表是这些请求的实时视图,因此随着请求的添加和删除而更改。- 返回:
-
所有
StepRequest
对象。
-
classPrepareRequests
List<ClassPrepareRequest> classPrepareRequests()返回已启用和已禁用的类准备请求的不可修改列表。此列表是这些请求的实时视图,因此随着请求的添加和删除而更改。- 返回:
-
所有
ClassPrepareRequest
对象。
-
classUnloadRequests
List<ClassUnloadRequest> classUnloadRequests()返回已启用和已禁用的类卸载请求的不可修改列表。此列表是这些请求的实时视图,因此随着请求的添加和删除而更改。- 返回:
-
所有
ClassUnloadRequest
对象。
-
threadStartRequests
List<ThreadStartRequest> threadStartRequests()返回已启用和已禁用的线程启动请求的不可修改列表。此列表是这些请求的实时视图,因此随着请求的添加和删除而更改。- 返回:
-
所有
ThreadStartRequest
对象。
-
threadDeathRequests
List<ThreadDeathRequest> threadDeathRequests()返回已启用和已禁用的线程终止请求的不可修改列表。此列表是这些请求的实时视图,因此随着请求的添加和删除而更改。- 返回:
-
所有
ThreadDeathRequest
对象。
-
exceptionRequests
List<ExceptionRequest> exceptionRequests()返回已启用和已禁用的异常请求的不可修改列表。此列表是这些请求的实时视图,因此随着请求的添加和删除而更改。- 返回:
-
所有
ExceptionRequest
对象。
-
breakpointRequests
List<BreakpointRequest> breakpointRequests()返回已启用和已禁用的断点请求的不可修改列表。此列表是这些请求的实时视图,因此随着请求的添加和删除而更改。- 返回:
-
所有
BreakpointRequest
对象的列表。
-
accessWatchpointRequests
List<AccessWatchpointRequest> accessWatchpointRequests()返回已启用和已禁用的访问监视点请求的不可修改列表。此列表是这些请求的实时视图,因此随着请求的添加和删除而更改。- 返回:
-
所有
AccessWatchpointRequest
对象。
-
modificationWatchpointRequests
List<ModificationWatchpointRequest> modificationWatchpointRequests()返回已启用和已禁用的修改监视点请求的不可修改列表。此列表是这些请求的实时视图,因此随着请求的添加和删除而更改。- 返回:
-
所有
ModificationWatchpointRequest
对象。
-
methodEntryRequests
List<MethodEntryRequest> methodEntryRequests()返回已启用和已禁用的方法进入请求的不可修改列表。此列表是这些请求的实时视图,因此随着请求的添加和删除而更改。- 返回:
-
所有
MethodEntryRequest
对象的列表。
-
methodExitRequests
List<MethodExitRequest> methodExitRequests()返回已启用和已禁用的方法退出请求的不可修改列表。此列表是这些请求的实时视图,因此随着请求的添加和删除而更改。- 返回:
-
所有
MethodExitRequest
对象的列表。
-
monitorContendedEnterRequests
List<MonitorContendedEnterRequest> monitorContendedEnterRequests()返回已启用和已禁用的监视器争用进入请求的不可修改列表。此列表是这些请求的实时视图,因此随着请求的添加和删除而更改。- 返回:
-
所有
MonitorContendedEnterRequest
对象的列表。 - 自1.6起:
- 1.6
-
monitorContendedEnteredRequests
List<MonitorContendedEnteredRequest> monitorContendedEnteredRequests()返回已启用和已禁用的监视器争用进入请求的不可修改列表。此列表是这些请求的实时视图,因此随着请求的添加和删除而更改。- 返回:
-
所有
MonitorContendedEnteredRequest
对象的列表。 - 自1.6起:
- 1.6
-
monitorWaitRequests
List<MonitorWaitRequest> monitorWaitRequests()返回已启用和已禁用的监视器等待请求的不可修改列表。此列表是这些请求的实时视图,因此随着请求的添加和删除而更改。- 返回:
-
所有
MonitorWaitRequest
对象的列表。 - 自1.6起:
- 1.6
-
monitorWaitedRequests
List<MonitorWaitedRequest> monitorWaitedRequests()返回已启用和已禁用的监视器等待请求的不可修改列表。此列表是这些请求的实时视图,因此随着请求的添加和删除而更改。- 返回:
-
所有
MonitorWaitedRequest
对象的列表。 - 自1.6起:
- 1.6
-
vmDeathRequests
List<VMDeathRequest> vmDeathRequests()返回已启用和已禁用的VM终止请求的不可修改列表。此列表是这些请求的实时视图,因此随着请求的添加和删除而更改。注意:未经请求的VMDeathEvent没有相应的请求。- 返回:
-
所有
VMDeathRequest
对象的列表。 - 自1.4起:
- 1.4
-