|
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() を使用します。
ClassPrepareRequestpublic ClassUnloadRequest createClassUnloadRequest()
ClassUnloadRequest を作成します。この EventRequestManager が管理するリストに新しいイベント要求が追加されます。このイベント要求を有効にするには、EventRequest.enable() を使用します。
ClassUnloadRequestpublic ThreadStartRequest createThreadStartRequest()
ThreadStartRequest を作成します。この EventRequestManager が管理するリストに、新しいイベント要求が追加されます。このイベント要求を有効にするには EventRequest.enable() を使用します。
ThreadStartRequestpublic 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 の場合、キャッチされない例外がレポートされる
ExceptionRequestpublic MethodEntryRequest createMethodEntryRequest()
MethodEntryRequest を作成します。この EventRequestManager が管理するリストに、新しいイベント要求が追加されます。このイベント要求を有効にするには、EventRequest.enable() を使用します。
MethodEntryRequestpublic 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 | |||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||