- 所有父级接口:
Mirror
- 所有已知的子接口:
AccessWatchpointRequest,BreakpointRequest,ClassPrepareRequest,ClassUnloadRequest,ExceptionRequest,MethodEntryRequest,MethodExitRequest,ModificationWatchpointRequest,MonitorContendedEnteredRequest,MonitorContendedEnterRequest,MonitorWaitedRequest,MonitorWaitRequest,StepRequest,ThreadDeathRequest,ThreadStartRequest,VMDeathRequest,WatchpointRequest
表示对事件通知的请求。示例包括
BreakpointRequest 和 ExceptionRequest 。当存在启用请求的事件发生时,EventSet 将被放置在 EventQueue 上。现有事件请求的集合由 EventRequestManager 管理。
可以通过过滤器控制为事件请求生成的事件数。过滤器提供了事件在被放入事件队列之前必须满足的额外约束。可以通过多次调用过滤器添加方法(例如 ExceptionRequest.addClassFilter(java.lang.String classPattern) )来使用多个过滤器。只有当事件被禁用时,过滤器才会一次一个地添加到事件中。多个过滤器使用 CUT-OFF AND 应用,按照它被添加到请求的顺序。只有满足所有过滤器的事件才会被放入事件队列。
可用过滤器集取决于事件请求,过滤器的一些示例是:
- 线程过滤器允许控制为其生成事件的线程。
- 类过滤器允许控制事件发生的类。
- 实例过滤器允许控制事件发生的实例。
- 计数过滤器允许控制事件报告的次数。
如果目标 VM 已断开连接并且 VMDisconnectEvent 已经或可从 EventQueue 读取,则 EventRequest 上以 EventRequest 作为参数的任何方法都可能抛出 VMDisconnectedException 。
如果目标 VM 内存不足,EventRequest 上以 EventRequest 作为参数的任何方法都可能抛出 VMOutOfMemoryException 。
- 自从:
- 1.3
- 参见:
-
字段摘要
字段修饰符和类型Field描述static final int事件发生时挂起所有线程static final int当事件发生时只挂起产生事件的线程static final int事件发生时不挂起任何线程 -
方法总结
修饰符和类型方法描述voidaddCountFilter(int count) 限制请求的事件在给定的发生次数后最多报告一次。voiddisable()与setEnabled(false)相同。voidenable()与setEnabled(true)相同。getProperty(Object key) 返回具有指定键的属性的值。boolean确定当前是否启用此事件请求。voidputProperty(Object key, Object value) 向此请求添加任意键/值“属性”。voidsetEnabled(boolean val) 启用或禁用此事件请求。voidsetSuspendPolicy(int policy) 确定在目标 VM 中发生请求的事件时要挂起的线程。int返回一个值,该值描述了当请求的事件在目标 VM 中发生时要挂起的线程。在接口 com.sun.jdi.Mirror 中声明的方法
toString, virtualMachine
-
字段详细信息
-
SUSPEND_NONE
static final int SUSPEND_NONE事件发生时不挂起任何线程- 参见:
-
SUSPEND_EVENT_THREAD
static final int SUSPEND_EVENT_THREAD当事件发生时只挂起产生事件的线程- 参见:
-
SUSPEND_ALL
static final int SUSPEND_ALL事件发生时挂起所有线程- 参见:
-
-
方法详情
-
isEnabled
boolean isEnabled()确定当前是否启用此事件请求。- 返回:
true如果启用;false否则。
-
setEnabled
void setEnabled(boolean val) 启用或禁用此事件请求。当此事件请求被禁用时,事件请求将被忽略,并且如果目标 VM 的任何线程到达事件请求,则目标 VM 将不会停止。禁用的事件请求仍然存在,并包含在事件请求列表中,例如EventRequestManager.breakpointRequests()。- 参数:
val-true如果要启用事件请求;false否则。- 抛出:
InvalidRequestStateException- 如果此请求已被删除。IllegalThreadStateException- 如果这是一个 StepRequest,val是true,并且请求中指定的线程已经终止或尚未启动。
-
enable
void enable()与setEnabled(true)相同。- 抛出:
InvalidRequestStateException- 如果此请求已被删除。IllegalThreadStateException- 如果这是一个 StepRequest 并且请求中指定的线程已终止或尚未启动。
-
disable
void disable()与setEnabled(false)相同。- 抛出:
InvalidRequestStateException- 如果此请求已被删除。
-
addCountFilter
void addCountFilter(int count) 限制请求的事件在给定的发生次数后最多报告一次。到达此过滤器的前count - 1次未报告该事件。要请求一次性事件,请使用计数 1 调用此方法。一旦计数达到 0,将应用此请求中的任何后续过滤器。如果这些过滤器均未导致事件被抑制,则报告该事件。否则,不会报告该事件。在任何一种情况下,都不会为此请求报告后续事件。
- 参数:
count- 生成事件之前发生的次数。- 抛出:
InvalidRequestStateException- 如果此请求当前已启用或已被删除。过滤器只能添加到禁用的请求。IllegalArgumentException- 如果count小于一。
-
setSuspendPolicy
void setSuspendPolicy(int policy) 确定在目标 VM 中发生请求的事件时要挂起的线程。使用SUSPEND_ALL挂起目标 VM 中的所有线程(默认)。使用SUSPEND_EVENT_THREAD仅挂起生成事件的线程。使用SUSPEND_NONE暂停任何线程。通过事件的线程挂起与明确请求的挂起具有相同的功能。有关详细信息,请参阅
ThreadReference.suspend()和VirtualMachine.suspend()。- 参数:
policy- 选定的暂停策略。- 抛出:
InvalidRequestStateException- 如果此请求当前已启用或已被删除。暂停策略只能在禁用的请求中设置。IllegalArgumentException- 如果策略参数包含非法值。
-
suspendPolicy
int suspendPolicy()- 返回:
- 此请求的当前挂起模式
-
putProperty
向此请求添加任意键/值“属性”。 JDI 的客户端可以使用该属性将应用程序信息与请求相关联; JDI 不在内部使用这些客户端设置的属性。get/putProperty方法提供对小型实例映射的访问。这是not与Properties混淆。如果值为 null,此方法将删除该属性。
- 参见:
-
getProperty
返回具有指定键的属性的值。只有添加了putProperty(java.lang.Object, java.lang.Object)的属性才会返回非空值。- 返回:
- 此属性的值或 null
- 参见:
-