Module jdk.jdi

Interface MonitorWaitRequest

所有超级接口:
EventRequest, Mirror

public interface MonitorWaitRequest extends EventRequest
当目标虚拟机中的线程即将等待监视器对象时请求通知。也就是说,一个线程正在进入Object.wait()。当启用的MonitorWaitRequest被满足时,一个包含事件集,其中包含MonitorWaitEvent的事件将被放置在EventQueue上。现有MonitorWaitEvents的集合由EventRequestManager管理。
自从:
1.6
参见:
  • Method Details

    • addThreadFilter

      void addThreadFilter(ThreadReference thread)
      限制此请求生成的事件,使其在给定线程中。
      参数:
      thread - 要过滤的线程。
      抛出:
      InvalidRequestStateException - 如果此请求当前已启用或已删除。只能向已禁用的请求添加过滤器。
    • addClassFilter

      void addClassFilter(ReferenceType refType)
      限制此请求生成的事件,使其监视器对象为给定引用类型或其任何子类型。
      参数:
      refType - 要过滤的引用类型。
      抛出:
      InvalidRequestStateException - 如果此请求当前已启用或已删除。只能向已禁用的请求添加过滤器。
    • addClassFilter

      void addClassFilter(String classPattern)
      限制此请求生成的事件,使其监视器对象类的名称与受限制的正则表达式匹配。正则表达式仅限于精确匹配和以'*'开头或以'*'结尾的模式;例如,"*.Foo"或"java.*"。
      参数:
      classPattern - 要过滤的模式字符串。
      抛出:
      InvalidRequestStateException - 如果此请求当前已启用或已删除。只能向已禁用的请求添加过滤器。
    • addClassExclusionFilter

      void addClassExclusionFilter(String classPattern)
      限制此请求生成的事件,使其监视器对象类的名称不匹配受限制的正则表达式,例如"java.*"或"*.Foo"。
      参数:
      classPattern - 要与之过滤的模式字符串。
      抛出:
      InvalidRequestStateException - 如果此请求当前已启用或已删除。只能向已禁用的请求添加过滤器。
    • addInstanceFilter

      void addInstanceFilter(ObjectReference instance)
      限制此请求生成的事件,使当前执行的实例("this")为指定的对象。

      并非所有目标都支持此操作。使用VirtualMachine.canUseInstanceFilters()来确定是否支持该操作。

      参数:
      instance - 必须是当前实例才能通过此过滤器的对象。
      抛出:
      UnsupportedOperationException - 如果目标虚拟机不支持此操作。
      InvalidRequestStateException - 如果此请求当前已启用或已删除。只能向已禁用的请求添加过滤器。