-
- All Superinterfaces:
-
Mirror
- All Known Subinterfaces:
-
AccessWatchpointRequest
,BreakpointRequest
,ClassPrepareRequest
,ClassUnloadRequest
,ExceptionRequest
,MethodEntryRequest
,MethodExitRequest
,ModificationWatchpointRequest
,MonitorContendedEnteredRequest
,MonitorContendedEnterRequest
,MonitorWaitedRequest
,MonitorWaitRequest
,StepRequest
,ThreadDeathRequest
,ThreadStartRequest
,VMDeathRequest
,WatchpointRequest
public interface EventRequest extends Mirror
表示事件通知请求。 示例包括BreakpointRequest
和ExceptionRequest
。 当发生已启用请求的事件时,EventSet
将被放置在EventQueue
上 。 现有事件请求的集合由EventRequestManager
管理。可以通过过滤器控制为事件请求生成的事件数。 过滤器提供事件在放置到事件队列之前必须满足的其他约束。 通过多次调用过滤添加方法(如
ExceptionRequest.addClassFilter(java.lang.String classPattern)
),可以使用多个过滤器。 仅在事件被禁用时,才将过滤器一次添加到事件中。 使用CUT-OFF AND应用多个过滤器,按照添加到请求的顺序。 只有满足所有过滤器的事件才会放在事件队列中。可用过滤器集取决于事件请求,过滤器的一些示例如下:
- 线程过滤器允许控制生成事件的线程。
- 类过滤器允许控制事件发生的类。
- 实例过滤器允许控制事件发生的实例。
- 计数过滤器允许控制报告事件的次数。
上的任何方法
EventRequest
这需要EventRequest
作为参数可能抛出VMDisconnectedException
如果目标VM断开且VMDisconnectEvent
从所读出的已被或可EventQueue
。如果目标VM内存
EventRequest
,EventRequest
上的任何方法(如果参数为EventRequest)可能会抛出VMOutOfMemoryException
。- 从以下版本开始:
- 1.3
- 另请参见:
-
BreakpointEvent
,EventQueue
,EventRequestManager
-
-
字段汇总
字段 变量和类型 字段 描述 static int
SUSPEND_ALL
事件发生时挂起所有线程static int
SUSPEND_EVENT_THREAD
仅挂起事件发生时生成事件的线程static int
SUSPEND_NONE
事件发生时不挂起任何线程
-
方法摘要
所有方法 实例方法 抽象方法 变量和类型 方法 描述 void
addCountFilter(int count)
限制在给定次数发生后最多报告一次的请求事件。void
disable()
与setEnabled(false)
相同。void
enable()
与setEnabled(true)
相同。Object
getProperty(Object key)
返回具有指定键的属性的值。boolean
isEnabled()
确定当前是否启用了此事件请求。void
putProperty(Object key, Object value)
向此请求添加任意键/值“property”。void
setEnabled(boolean val)
启用或禁用此事件请求。void
setSuspendPolicy(int policy)
确定在目标VM中发生请求的事件时要挂起的线程。int
suspendPolicy()
返回一个值,该值描述在目标VM中发生请求的事件时要挂起的线程。-
声明方法的接口 com.sun.jdi.Mirror
toString, virtualMachine
-
-
-
-
方法详细信息
-
isEnabled
boolean isEnabled()
确定当前是否启用了此事件请求。- 结果
-
true
若已启用; 否则为false
。
-
setEnabled
void setEnabled(boolean val)
启用或禁用此事件请求。 禁用此事件请求时,将忽略事件请求,并且如果其任何线程到达事件请求,则不会停止目标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
- 如果policy参数包含非法值。
-
suspendPolicy
int suspendPolicy()
返回一个值,该值描述在目标VM中发生请求的事件时要挂起的线程。 返回的值是SUSPEND_ALL
,SUSPEND_EVENT_THREAD
,或SUSPEND_NONE
。- 结果
- 此请求的当前挂起模式
-
putProperty
void putProperty(Object key, Object value)
向此请求添加任意键/值“property”。 JDI的客户端可以使用该属性将应用程序信息与请求相关联; JDI内部不使用这些客户端设置属性。get/putProperty
方法提供对小型实例映射的访问。 这是不是有混淆Properties
。如果value为null,则此方法将删除该属性。
-
getProperty
Object getProperty(Object key)
返回具有指定键的属性的值。 只有添加了putProperty(java.lang.Object, java.lang.Object)
的属性才会返回非空值。- 结果
- 此属性的值或null
- 另请参见:
-
putProperty(java.lang.Object, java.lang.Object)
-
-