|
Java Debug Interface | ||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
public interface EventRequestManager
EventRequest
の作成および削除を管理します。このインタフェースの単一の実装が、特定の VM 内に存在し、VirtualMachine.eventRequestManager()
を介してアクセスが行われます。
EventRequest
,
Event
,
BreakpointRequest
,
BreakpointEvent
,
VirtualMachine
インタフェース com.sun.jdi.Mirror から継承されたメソッド |
---|
toString, virtualMachine |
メソッドの詳細 |
---|
ClassPrepareRequest createClassPrepareRequest()
ClassPrepareRequest
を作成します。この EventRequestManager が管理するリストに新しいイベント要求が追加されます。このイベント要求を有効にするには、EventRequest.enable()
を使用します。
ClassPrepareRequest
ClassUnloadRequest createClassUnloadRequest()
ClassUnloadRequest
を作成します。この EventRequestManager が管理するリストに新しいイベント要求が追加されます。このイベント要求を有効にするには、EventRequest.enable()
を使用します。
ClassUnloadRequest
ThreadStartRequest createThreadStartRequest()
ThreadStartRequest
を作成します。この EventRequestManager が管理するリストに新しいイベント要求が追加されます。このイベント要求を有効にするには、EventRequest.enable()
を使用します。
ThreadStartRequest
ThreadDeathRequest createThreadDeathRequest()
ThreadDeathRequest
を作成します。この EventRequestManager が管理するリストに新しいイベント要求が追加されます。このイベント要求を有効にするには、EventRequest.enable()
を使用します。
ThreadDeathRequest
ExceptionRequest createExceptionRequest(ReferenceType refType, boolean notifyCaught, boolean notifyUncaught)
ExceptionRequest
を作成します。この EventRequestManager が管理するリストに新しいイベント要求が追加されます。このイベント要求を有効にするには、EventRequest.enable()
を使用します。
例外イベントとして、特定の例外型およびそのサブクラスを選択できます。キャッチされる例外、キャッチされない例外、または両方を選択できます。ただし、例外がスローされる時点で、その例外が本当にキャッチされるかどうかを判断できるとは限りません。詳細は、ExceptionEvent.catchLocation()
を参照してください。
refType
- null 以外の場合、refType のインスタンスである例外がレポートされるように指定する。
注:これには、サブタイプのインスタンスも含まれる。null の場合、すべてのインスタンスがレポートされるnotifyCaught
- true の場合、キャッチされた例外がレポートされる。notifyUncaught
- true の場合、キャッチされない例外がレポートされる。
ExceptionRequest
MethodEntryRequest createMethodEntryRequest()
MethodEntryRequest
を作成します。この EventRequestManager が管理するリストに新しいイベント要求が追加されます。このイベント要求を有効にするには、EventRequest.enable()
を使用します。
MethodEntryRequest
MethodExitRequest createMethodExitRequest()
MethodExitRequest
を作成します。この EventRequestManager が管理するリストに新しいイベント要求が追加されます。このイベント要求を有効にするには、EventRequest.enable()
を使用します。
MethodExitRequest
MonitorContendedEnterRequest createMonitorContendedEnterRequest()
MonitorContendedEnterRequest
を作成します。この EventRequestManager が管理するリストに新しいイベント要求が追加されます。このイベント要求を有効にするには、EventRequest.enable()
を使用します。
この操作は、ターゲット仮想マシンでサポートされていないことがあります。この操作がサポートされているかどうかを確認するには、VirtualMachine.canRequestMonitorEvents()
を使用します。
MonitorContendedEnterRequest
UnsupportedOperationException
- ターゲット VM でこの操作がサポートされていない場合。MonitorContendedEnteredRequest createMonitorContendedEnteredRequest()
MonitorContendedEnteredRequest
を作成します。この EventRequestManager が管理するリストに新しいイベント要求が追加されます。このイベント要求を有効にするには、EventRequest.enable()
を使用します。
この操作は、ターゲット仮想マシンでサポートされていないことがあります。この操作がサポートされているかどうかを確認するには、VirtualMachine.canRequestMonitorEvents()
を使用します。
MonitorContendedEnteredRequest
UnsupportedOperationException
- ターゲット VM でこの操作がサポートされていない場合。MonitorWaitRequest createMonitorWaitRequest()
MonitorWaitRequest
を作成します。この EventRequestManager が管理するリストに新しいイベント要求が追加されます。このイベント要求を有効にするには、EventRequest.enable()
を使用します。
この操作は、ターゲット仮想マシンでサポートされていないことがあります。この操作がサポートされているかどうかを確認するには、VirtualMachine.canRequestMonitorEvents()
を使用します。
MonitorWaitRequest
UnsupportedOperationException
- ターゲット VM でこの操作がサポートされていない場合。MonitorWaitedRequest createMonitorWaitedRequest()
MonitorWaitedRequest
を作成します。この EventRequestManager が管理するリストに新しいイベント要求が追加されます。このイベント要求を有効にするには、EventRequest.enable()
を使用します。
この操作は、ターゲット仮想マシンでサポートされていないことがあります。この操作がサポートされているかどうかを確認するには、VirtualMachine.canRequestMonitorEvents()
を使用します。
MonitorWaitedRequest
UnsupportedOperationException
- ターゲット VM でこの操作がサポートされていない場合。StepRequest createStepRequest(ThreadReference thread, int size, int depth)
StepRequest
を作成します。この EventRequestManager が管理するリストに新しいイベント要求が追加されます。このイベント要求を有効にするには、EventRequest.enable()
を使用します。
返される要求は、指定された thread
へのステップ実行だけを制御します。 ほかのすべてのスレッドは、影響を受けません。コードインデックスが変更されるたびに、StepRequest.STEP_MIN
の size
値によりステップイベントが生成されます。size 値は、利用可能な最小のステップサイズを表し、多くの場合、命令レベルにマップします。ソース行が変更されるたびに、行番号の情報を利用できるかぎり、StepRequest.STEP_LINE
の size
値がステップイベントを生成します。行番号の情報を利用できない場合は、STEP_MIN が代わりに実行されます。たとえば、VirtualMachine.redefineClasses(java.util.Map extends com.sun.jdi.ReferenceType, byte[]>)
操作によって廃止されたメソッドが実行されているとき、行番号情報は利用できません。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
- 指定されたスレッドに対する保留中のステップ要求がすでに存在する場合。
IllegalArgumentException
- size 引数または depth 引数に無効な値が含まれている場合。
BreakpointRequest createBreakpointRequest(Location location)
BreakpointRequest
を作成します。指定された Location
は、有効な (つまり、負ではない) コードインデックスを保持する必要があります。この EventRequestManager が管理するリストに、新しいブレークポイントが追加されます。1 つの場所に複数のブレークポイントを設定可能です。このイベント要求を有効にするには、EventRequest.enable()
を使用します。
location
- 新規ブレークポイントの位置。
BreakpointRequest
NativeMethodException
- 位置がネイティブメソッド内の場合。AccessWatchpointRequest createAccessWatchpointRequest(Field field)
EventRequest.enable()
を使用します。
この操作は、ターゲット仮想マシンでサポートされていないことがあります。この操作がサポートされているかどうかを確認するには、VirtualMachine.canWatchFieldAccess()
を使用します。
field
- 監視するフィールド
UnsupportedOperationException
- ターゲット Virtual Machine がこの操作をサポートしていない場合。ModificationWatchpointRequest createModificationWatchpointRequest(Field field)
EventRequest.enable()
を使用します。
この操作は、ターゲット仮想マシンでサポートされていないことがあります。この操作がサポートされているかどうかを確認するには、VirtualMachine.canWatchFieldModification()
を使用します。
field
- 監視するフィールド
UnsupportedOperationException
- ターゲット Virtual Machine がこの操作をサポートしていない場合。VMDeathRequest createVMDeathRequest()
VMDeathRequest
を作成します。この EventRequestManager が管理するリストに、新しい要求が追加されます。このイベント要求を有効にするには、EventRequest.enable()
を使用します。
この要求は (有効な場合)、ターゲット VM の終了時に VMDeathEvent
が送信されるようにします。
中断ポリシー SUSPEND_ALL
が設定された VMDeathRequest を使用して、VM の終了前の着信イベント SUSPEND_NONE
または SUSPEND_EVENT_THREAD
を確実に処理することができます。イベントセットが読み込まれるスレッドと同じスレッド内ですべてのイベント処理が行われている場合は、VMDeathEvent
を含む EventSet
が再開されるまで VM が中断されるので、必要なのは要求を有効にすることだけです。
この操作は、ターゲット仮想マシンでサポートされていないことがあります。この操作がサポートされているかどうかを確認するには、VirtualMachine.canRequestVMDeathEvent()
を使用します。
UnsupportedOperationException
- ターゲット VM でこの操作がサポートされていない場合。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
- 削除する eventRequestvoid deleteEventRequests(List<? extends EventRequest> eventRequests)
EventRequest
のリストを削除します。
eventRequests
- 削除する eventRequest のリストdeleteEventRequest(EventRequest)
void deleteAllBreakpoints()
deleteEventRequest(EventRequest)
List<StepRequest> stepRequests()
StepRequest
オブジェクトList<ClassPrepareRequest> classPrepareRequests()
ClassPrepareRequest
オブジェクト。List<ClassUnloadRequest> classUnloadRequests()
ClassUnloadRequest
オブジェクト。List<ThreadStartRequest> threadStartRequests()
ThreadStartRequest
オブジェクト。List<ThreadDeathRequest> threadDeathRequests()
ThreadDeathRequest
オブジェクト。List<ExceptionRequest> exceptionRequests()
ExceptionRequest
オブジェクト。List<BreakpointRequest> breakpointRequests()
BreakpointRequest
オブジェクトのリスト。List<AccessWatchpointRequest> accessWatchpointRequests()
AccessWatchpointRequest
オブジェクト。List<ModificationWatchpointRequest> modificationWatchpointRequests()
ModificationWatchpointRequest
オブジェクト。List<MethodEntryRequest> methodEntryRequests()
MethodEntryRequest
オブジェクトのリスト。List<MethodExitRequest> methodExitRequests()
MethodExitRequest
オブジェクトのリスト。List<MonitorContendedEnterRequest> monitorContendedEnterRequests()
MonitorContendedEnterRequest
オブジェクトのリスト。List<MonitorContendedEnteredRequest> monitorContendedEnteredRequests()
MonitorContendedEnteredRequest
オブジェクトのリスト。List<MonitorWaitRequest> monitorWaitRequests()
MonitorWaitRequest
オブジェクトのリスト。List<MonitorWaitedRequest> monitorWaitedRequests()
MonitorWaitedRequest
オブジェクトのリスト。List<VMDeathRequest> vmDeathRequests()
VMDeathRequest
オブジェクトのリスト。
|
Java Debug Interface | ||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |