|
Java Debug Interface | |||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
EventRequest
の作成および削除を管理します。このインタフェースの単一の実装が、特定の VM 内に存在し、VirtualMachine.eventRequestManager()
を介してアクセスが行われます。
EventRequest
,
Event
,
BreakpointRequest
,
BreakpointEvent
,
VirtualMachine
インタフェース com.sun.jdi.Mirror から継承したメソッド |
toString, virtualMachine |
メソッドの詳細 |
public ClassPrepareRequest createClassPrepareRequest()
ClassPrepareRequest
を作成します。この EventRequestManager が管理するリストに新しいイベント要求が追加されます。このイベント要求を有効にするには、EventRequest.enable()
を使用します。
ClassPrepareRequest
public ClassUnloadRequest createClassUnloadRequest()
ClassUnloadRequest
を作成します。この EventRequestManager が管理するリストに新しいイベント要求が追加されます。このイベント要求を有効にするには、EventRequest.enable()
を使用します。
ClassUnloadRequest
public ThreadStartRequest createThreadStartRequest()
ThreadStartRequest
を作成します。この EventRequestManager が管理するリストに、新しいイベント要求が追加されます。このイベント要求を有効にするには EventRequest.enable()
を使用します。
ThreadStartRequest
public ThreadDeathRequest createThreadDeathRequest()
ThreadDeathRequest
を作成します。この EventRequestManager が管理するリストに、新しいイベント要求が追加されます。このイベント要求を有効にするには EventRequest.enable()
を使用します。
ThreadDeathRequest
public ExceptionRequest createExceptionRequest(ReferenceType refType, boolean notifyCaught, boolean notifyUncaught)
ExceptionRequest
を作成します。この EventRequestManager が管理するリストに、新しいイベント要求が追加されます。このイベント要求を有効にするには、EventRequest.enable()
を使用します。
例外イベントとして、特定の例外型およびそのサブクラスを選択できます。キャッチされる例外、キャッチされない例外、または両方を選択できます。ただし、例外がスローされる時点で、その例外が本当にキャッチされるかどうかを判断できるとは限りません。詳細は、ExceptionEvent.catchLocation()
を参照してください。
refType
- null 以外の場合、refType のインスタンスである例外がレポートされるように指定する。注: これには、サブタイプのインスタンスも含まれる。null の場合、すべてのインスタンスがレポートされるnotifyCaught
- true の場合、キャッチされた例外がレポートされるnotifyUncaught
- true の場合、キャッチされない例外がレポートされる
ExceptionRequest
public MethodEntryRequest createMethodEntryRequest()
MethodEntryRequest
を作成します。この EventRequestManager が管理するリストに、新しいイベント要求が追加されます。このイベント要求を有効にするには、EventRequest.enable()
を使用します。
MethodEntryRequest
public MethodExitRequest createMethodExitRequest()
MethodExitRequest
を作成します。この EventRequestManager が管理するリストに、新しいイベント要求が追加されます。このイベント要求を有効にするには、EventRequest.enable()
を使用します。
MethodExitRequest
public StepRequest createStepRequest(ThreadReference thread, int size, int depth)
StepRequest
を作成します。この EventRequestManager が管理するリストに、新しいイベント要求が追加されます。このイベント要求を有効にするには、EventRequest.enable()
を使用します。
返される要求は、指定された thread
へのステップ実行だけを制御します。他のすべてのスレッドは、影響を受けません。コードインデックスが変更されるたびに、StepRequest.STEP_MIN
の size
値がステップイベントを生成します。size
値は、利用可能な最小のステップサイズを表し、多くの場合命令レベルにマップします。ソース行が変更されるたびに、StepRequest.STEP_LINE
の size
値がステップイベントを生成します。StepRequest.STEP_INTO
の depth
値は、呼び出されたすべてのメソッドでステップイベントを生成します。StepRequest.STEP_OVER
の depth
値は、ステップイベントを現在のフレームまたは呼び出し側のフレームに制限します。StepRequest.STEP_OUT
の depth
値は、ステップイベントを呼び出し側のフレームだけに制限します。すべての深さ制限は、ステップが実行される直前の呼び出しスタックに対する相対的なものです。
スレッドごとに、1 つの保留されたステップ要求が許可されます。
一般に、デバッガは、最初のステップの検出後にステップ実行を取り消そうとします。このため、次行のメソッドは、次のようになります。
EventRequestManager mgr = myVM.
eventRequestManager
();
StepRequest request = mgr.createStepRequest(myThread,
StepRequest.STEP_LINE
,
StepRequest.STEP_OVER
);
request.addCountFilter
(1); // next step only
request.enable();
myVM.resume
();
thread
- ステップ実行対象のスレッドdepth
- ステップの深さsize
- ステップのサイズ
StepRequest
DuplicateRequestException
- 指定されたスレッドに対する保留中のステップ要求が既に存在する場合
public BreakpointRequest createBreakpointRequest(Location location)
BreakpointRequest
を作成します。指定された Location
は、有効な (つまり、負ではない) コードインデックスを保持する必要があります。この EventRequestManager が管理するリストに、新しいブレークポイントが追加されます。1 つの場所に複数のブレークポイントを設定可能です。このイベント要求を有効にするには、EventRequest.enable()
を使用します。
location
- 新規ブレークポイントの位置
BreakpointRequest
NativeMethodException
- 位置が native メソッド内の場合public AccessWatchpointRequest createAccessWatchpointRequest(Field field)
EventRequest.enable()
を使用します。
この操作は、ターゲット Virtual Machine でサポートされていないことがあります。この操作がサポートされているかどうかを確認するには、VirtualMachine.canWatchFieldAccess()
を使用してください。
field
- 監視するフィールド
UnsupportedOperationException
- ターゲット Virtual Machine でこの操作がサポートされていない場合public ModificationWatchpointRequest createModificationWatchpointRequest(Field field)
EventRequest.enable()
を使用します。
この操作は、ターゲット Virtual Machine でサポートされていないことがあります。この操作がサポートされているかどうかを確認するには、VirtualMachine.canWatchFieldModification()
を使用してください。
field
- 監視するフィールド
UnsupportedOperationException
- ターゲット Virtual Machine でこの操作がサポートされていない場合public VMDeathRequest createVMDeathRequest()
VMDeathRequest
を作成します。この EventRequestManager が管理するリストに、新しい要求が追加されます。このイベント要求を有効にするには、EventRequest.enable()
を使用します。
この要求は (有効な場合)、ターゲット VM の終了時に VMDeathEvent
が送信されるようにします。
SUSPEND_ALL
の中断ポリシーが設定された VMDeathRequest を使用して、VM 終了前の受信 SUSPEND_NONE
または SUSPEND_EVENT_THREAD
イベントの処理を確実にできます。イベントセットが読み込まれるスレッドと同じスレッド内ですべてのイベント処理が行われている場合、VMDeathEvent
を含む EventSet
が再開されるまで VM が中断されているため、要求を有効にする必要があります。
この操作は、ターゲット Virtual Machine でサポートされていないことがあります。この操作がサポートされているかどうかを確認するには、VirtualMachine.canRequestVMDeathEvent()
を使用してください。
UnsupportedOperationException
- ターゲット VM でこの操作がサポートされていない場合public void deleteEventRequest(EventRequest eventRequest)
EventRequest.setEnabled(boolean)
などの操作を一切実行できなくなります。操作を実行しようとすると、通常は InvalidRequestStateException
がスローされます。なお、このメソッドは、その他の eventRequest には影響を与えません。
このメソッドは管理対象のイベント要求リストを変更するため、要求アクセス用メソッドを使って取得したリスト内の要求を直接削除しようとすると、エラーが発生します。以下に例を示します。
Iterator iter = requestManager.stepRequests().iterator(); while (iter.hasNext()) { requestManager.deleteEventRequest(iter.next()); }この場合、
ConcurrentModificationException
が発生します。代わりに、deleteEventRequests(List)
を使うか、リストをいったんコピーしてからループ処理を行うようにしてください。
eventRequest
- 削除する eventRequestpublic void deleteEventRequests(List eventRequests)
EventRequest
のリストを削除します。
eventRequests
- 削除する eventRequest のリストdeleteEventRequest(EventRequest)
public void deleteAllBreakpoints()
deleteEventRequest(EventRequest)
public List stepRequests()
StepRequest
オブジェクトpublic List classPrepareRequests()
ClassPrepareRequest
オブジェクトpublic List classUnloadRequests()
ClassUnloadRequest
オブジェクトpublic List threadStartRequests()
ThreadStartRequest
オブジェクトpublic List threadDeathRequests()
ThreadDeathRequest
オブジェクトpublic List exceptionRequests()
ExceptionRequest
オブジェクトpublic List breakpointRequests()
BreakpointRequest
オブジェクトのリストpublic List accessWatchpointRequests()
AccessWatchpointRequest
オブジェクトpublic List modificationWatchpointRequests()
ModificationWatchpointRequest
オブジェクトpublic List methodEntryRequests()
MethodEntryRequest
オブジェクトのリストpublic List methodExitRequests()
MethodExitRequest
オブジェクトのリストpublic List vmDeathRequests()
VMDeathRequest
オブジェクトのリスト
|
Java Debug Interface | |||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |