モジュール jdk.jdi
パッケージ com.sun.jdi.request

インタフェースEventRequest

すべてのスーパー・インタフェース:
Mirror
既知のすべてのサブインタフェース:
AccessWatchpointRequest, BreakpointRequest, ClassPrepareRequest, ClassUnloadRequest, ExceptionRequest, MethodEntryRequest, MethodExitRequest, ModificationWatchpointRequest, MonitorContendedEnteredRequest, MonitorContendedEnterRequest, MonitorWaitedRequest, MonitorWaitRequest, StepRequest, ThreadDeathRequest, ThreadStartRequest, VMDeathRequest, WatchpointRequest

public interface EventRequest
extends Mirror
イベントの通知要求を表します。 例としては、BreakpointRequestExceptionRequestがあります。 有効な要求が存在するイベントが発生すると、EventSetEventQueueに置かれます。 既存のイベント要求のコレクションは、EventRequestManagerによって管理されます。

イベント要求のために生成されるイベントの数は、フィルタを使って制御できます。 フィルタは、イベントがイベント・キューに置かれる前に満たす必要がある追加制約を提供します。 ExceptionRequest.addClassFilter(java.lang.String classPattern)などのフィルタ追加メソッドを複数回呼び出すことによって、複数のフィルタを使用できます。 フィルタはイベントに一度に1つ追加されます(イベントが無効のときのみ)。 複数のフィルタは、カット・オフ、かつ要求に追加された順序で適用されます。 すべてのフィルタを満たすイベントだけがイベント・キューに置かれます。

利用可能なフィルタのセットは、イベント要求に応じて異なります。フィルタの例を示します。

  • スレッド・フィルタは、イベントがどのスレッドのために生成されるかを制御できる。
  • クラス・フィルタは、イベントがどのクラスで発生するかを制御できる。
  • インスタンス・フィルタは、イベントがどのインスタンスで発生するかを制御できる。
  • カウント・フィルタは、イベントが何回報告されるかを制御できる。
フィルタは、ターゲットVMからデバッガVMに送信されるイベント・トラフィックの量を低減することにより、デバッガのパフォーマンスを劇的に向上させることができます。

ターゲットVMが切断されていて、VMDisconnectEventEventQueueから読み出されたか読出せる場合は、EventRequestをパラメータとして取るEventRequest上のメソッドはVMDisconnectedExceptionをスローします。

EventRequestをパラメータとして取るEventRequest上のメソッドは、ターゲットVMのメモリーが不足した場合にVMOutOfMemoryExceptionをスローします。

導入されたバージョン:
1.3
関連項目:
BreakpointEvent, EventQueue, EventRequestManager
  • フィールドのサマリー

    フィールド
    修飾子と型 フィールド 説明
    static int SUSPEND_ALL
    イベントの発生時に、すべてのスレッドを中断します。
    static int SUSPEND_EVENT_THREAD
    イベントの発生時に、イベントを生成したスレッドだけを中断します。
    static int SUSPEND_NONE
    イベントの発生時に、どのスレッドも中断しません。
  • メソッドのサマリー

    修飾子と型 メソッド 説明
    void addCountFilter​(int count)
    要求されたイベントが報告される回数を最大で、指定された回数発生したあと1回に制限します。
    void disable()
    setEnabled(false)と同じ。
    void enable()
    setEnabled(true)と同じ。
    Object getProperty​(Object key)
    指定されたキーを持つプロパティの値を返します。
    boolean isEnabled()
    このイベント要求が現在有効かどうかを判定します。
    void putProperty​(Object key, Object value)
    この要求に任意のキーと値の「プロパティ」を追加します。
    void setEnabled​(boolean val)
    このイベント要求を有効または無効にします。
    void setSuspendPolicy​(int policy)
    ターゲットVM内で要求されたイベントが発生する際に中断するスレッドを決定します。
    int suspendPolicy()
    ターゲット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はそのスレッドがこのイベント要求に達した場合にも停止しません。 無効なイベント要求はそれでも存在しており、EventRequestManager.breakpointRequests()などのイベント要求リストに含まれています。
      パラメータ:
      val - イベント要求を有効にする場合はtrue、それ以外の場合はfalse
      例外:
      InvalidRequestStateException - この要求が削除されている場合。
      IllegalThreadStateException - これがStepRequestの場合、valtrueであり、リクエストで指定されたスレッドが終了したか、まだ開始されていません。
    • enable

      void enable()
      setEnabled(true)と同じ。
      例外:
      InvalidRequestStateException - この要求が削除されている場合。
      IllegalThreadStateException - これがStepRequestであり、リクエストに指定されたスレッドが終了したか、まだ開始されていない場合。
    • disable

      void disable()
      setEnabled(false)と同じ。
      例外:
      InvalidRequestStateException - この要求が削除されている場合。
    • addCountFilter

      void addCountFilter​(int count)
      要求されたイベントが報告される回数を最大で、指定された回数発生したあと1回に制限します。 このフィルタが最初にcount - 1回に達する時点までは、イベントはレポートされない。 1回かぎりのイベントを要求するには、このメソッドをカウント1で呼び出せばよい。

      カウントが0に達したあとは、この要求内の続くフィルタが適用される。 それらのフィルタがいずれもイベントを抑制しない場合、そのイベントはレポートされる。 そうでない場合、イベントはレポートされない。 どちらの場合にも、この要求に対して、それ以降のイベントがレポートされることはない。

      パラメータ:
      count - イベントを生成する前の発生回数。
      例外:
      InvalidRequestStateException - この要求が現在有効になっている場合、または削除されている場合。 フィルタは無効な要求にだけ追加できる。
      IllegalArgumentException - countが1より小さい場合。
    • setSuspendPolicy

      void setSuspendPolicy​(int policy)
      ターゲットVM内で要求されたイベントが発生する際に中断するスレッドを決定します。 ターゲットVM内のすべてのスレッドを中断する場合はSUSPEND_ALLを使用します(デフォルト)。 イベントを生成したスレッドだけを中断する場合はSUSPEND_EVENT_THREADを使用します。 スレッドを中断しない場合は、SUSPEND_NONEを使用します。

      イベントに基づくスレッドの中断は、明示的に要求された中断と同じ機能です。 詳細は、ThreadReference.suspend()およびVirtualMachine.suspend()を参照してください。

      パラメータ:
      policy - 選択された中断ポリシー。
      例外:
      InvalidRequestStateException - この要求が現在有効になっている場合、または削除されている場合。 中断ポリシーは無効な要求にだけ設定できる。
      IllegalArgumentException - policy引数に不正な値が含まれている場合。
    • suspendPolicy

      int suspendPolicy()
      ターゲットVM内で要求されたイベントが発生する際に中断するスレッドを示す値を返します。 戻り値は、SUSPEND_ALLSUSPEND_EVENT_THREAD、またはSUSPEND_NONEです。
      戻り値:
      この要求の現在の中断モード
    • putProperty

      void putProperty​(Object key, Object value)
      この要求に任意のキーと値の「プロパティ」を追加します。 JDIのクライアントは、アプリケーション情報を要求に関連付けるためにこのプロパティを使用できます。これらのクライアント設定プロパティは、JDIにより内部的に使用されることはありません。

      get/putPropertyメソッドは、インスタンスごとの小規模なマップへのアクセスを提供します。 これをProperties混同しないでください。

      valueがnullの場合、このメソッドはプロパティを削除します。

      関連項目:
      getProperty(java.lang.Object)
    • getProperty

      Object getProperty​(Object key)
      指定されたキーを持つプロパティの値を返します。 putProperty(java.lang.Object, java.lang.Object)で追加されたプロパティだけがnull以外の値を返します。
      戻り値:
      このプロパティの値またはnull
      関連項目:
      putProperty(java.lang.Object, java.lang.Object)