-
- すべてのスーパー・インタフェース:
Mirror
public interface EventRequestManager extends Mirror
EventRequest
の作成および削除を管理します。 このインタフェースの単一の実装者は、特定のVMに存在し、VirtualMachine.eventRequestManager()
を介してアクセスされます- 導入されたバージョン:
- 1.3
- 関連項目:
EventRequest
,Event
,BreakpointRequest
,BreakpointEvent
,VirtualMachine
-
-
メソッドのサマリー
-
インタフェース com.sun.jdi.Mirrorで宣言されたメソッド
toString, virtualMachine
-
-
-
-
メソッドの詳細
-
createClassPrepareRequest
ClassPrepareRequest createClassPrepareRequest()
新しい無効なClassPrepareRequest
を作成します。 このEventRequestManagerが管理するリストに新しいイベント要求が追加されます。 このイベント要求を有効にするには、EventRequest.enable()
を使用します。- 戻り値:
- 作成された
ClassPrepareRequest
-
createClassUnloadRequest
ClassUnloadRequest createClassUnloadRequest()
新しい無効なClassUnloadRequest
を作成します。 このEventRequestManagerが管理するリストに新しいイベント要求が追加されます。 このイベント要求を有効にするには、EventRequest.enable()
を使用します。- 戻り値:
- 作成された
ClassUnloadRequest
-
createThreadStartRequest
ThreadStartRequest createThreadStartRequest()
新しい無効なThreadStartRequest
を作成します。 このEventRequestManagerが管理するリストに新しいイベント要求が追加されます。 このイベント要求を有効にするには、EventRequest.enable()
を使用します。- 戻り値:
- 作成された
ThreadStartRequest
-
createThreadDeathRequest
ThreadDeathRequest createThreadDeathRequest()
新しい無効なThreadDeathRequest
を作成します。 このEventRequestManagerが管理するリストに新しいイベント要求が追加されます。 このイベント要求を有効にするには、EventRequest.enable()
を使用します。- 戻り値:
- 作成された
ThreadDeathRequest
-
createExceptionRequest
ExceptionRequest createExceptionRequest(ReferenceType refType, boolean notifyCaught, boolean notifyUncaught)
新しい無効なExceptionRequest
を作成します。 このEventRequestManagerが管理するリストに新しいイベント要求が追加されます。 このイベント要求を有効にするには、EventRequest.enable()
を使用します。例外イベントとして、特定の例外型およびそのサブクラスを選択できます。 キャッチされる例外、キャッチされない例外、または両方を選択できます。 ただし、例外がスローされる時点で、その例外が本当にキャッチされるかどうかを判断できるとは限りません。 詳細は、
ExceptionEvent.catchLocation()
を参照してください。- パラメータ:
refType
- null以外の場合、refTypeのインスタンスである例外が報告されるように指定する。 ノート: これには、サブ型のインスタンスも含まれる。 nullの場合、すべてのインスタンスが報告されるnotifyCaught
- trueの場合、キャッチされた例外が報告される。notifyUncaught
- trueの場合、キャッチされない例外が報告される。- 戻り値:
- 作成された
ExceptionRequest
-
createMethodEntryRequest
MethodEntryRequest createMethodEntryRequest()
新しい無効なMethodEntryRequest
を作成します。 このEventRequestManagerが管理するリストに新しいイベント要求が追加されます。 このイベント要求を有効にするには、EventRequest.enable()
を使用します。- 戻り値:
- 作成された
MethodEntryRequest
-
createMethodExitRequest
MethodExitRequest createMethodExitRequest()
新しい無効なMethodExitRequest
を作成します。 このEventRequestManagerが管理するリストに新しいイベント要求が追加されます。 このイベント要求を有効にするには、EventRequest.enable()
を使用します。- 戻り値:
- 作成された
MethodExitRequest
-
createMonitorContendedEnterRequest
MonitorContendedEnterRequest createMonitorContendedEnterRequest()
新しい無効なMonitorContendedEnterRequest
を作成します。 このEventRequestManagerが管理するリストに新しいイベント要求が追加されます。 このイベント要求を有効にするには、EventRequest.enable()
を使用します。 この操作は、ターゲット仮想マシンでサポートされていないことがあります。 この操作がサポートされているかどうかを確認するには、VirtualMachine.canRequestMonitorEvents()
を使用します。- 戻り値:
- 作成された
MonitorContendedEnterRequest
- 例外:
UnsupportedOperationException
- ターゲットVMでこの操作がサポートされていない場合。- 導入されたバージョン:
- 1.6
-
createMonitorContendedEnteredRequest
MonitorContendedEnteredRequest createMonitorContendedEnteredRequest()
新しい無効なMonitorContendedEnteredRequest
を作成します。 このEventRequestManagerが管理するリストに新しいイベント要求が追加されます。 このイベント要求を有効にするには、EventRequest.enable()
を使用します。 この操作は、ターゲット仮想マシンでサポートされていないことがあります。 この操作がサポートされているかどうかを確認するには、VirtualMachine.canRequestMonitorEvents()
を使用します。- 戻り値:
- 作成された
MonitorContendedEnteredRequest
- 例外:
UnsupportedOperationException
- ターゲットVMでこの操作がサポートされていない場合。- 導入されたバージョン:
- 1.6
-
createMonitorWaitRequest
MonitorWaitRequest createMonitorWaitRequest()
新しい無効なMonitorWaitRequest
を作成します。 このEventRequestManagerが管理するリストに新しいイベント要求が追加されます。 このイベント要求を有効にするには、EventRequest.enable()
を使用します。 この操作は、ターゲット仮想マシンでサポートされていないことがあります。 この操作がサポートされているかどうかを確認するには、VirtualMachine.canRequestMonitorEvents()
を使用します。- 戻り値:
- 作成された
MonitorWaitRequest
- 例外:
UnsupportedOperationException
- ターゲットVMでこの操作がサポートされていない場合。- 導入されたバージョン:
- 1.6
-
createMonitorWaitedRequest
MonitorWaitedRequest createMonitorWaitedRequest()
新しい無効なMonitorWaitedRequest
を作成します。 このEventRequestManagerが管理するリストに新しいイベント要求が追加されます。 このイベント要求を有効にするには、EventRequest.enable()
を使用します。 この操作は、ターゲット仮想マシンでサポートされていないことがあります。 この操作がサポートされているかどうかを確認するには、VirtualMachine.canRequestMonitorEvents()
を使用します。- 戻り値:
- 作成された
MonitorWaitedRequest
- 例外:
UnsupportedOperationException
- ターゲットVMでこの操作がサポートされていない場合。- 導入されたバージョン:
- 1.6
-
createStepRequest
StepRequest createStepRequest(ThreadReference thread, int size, int depth)
新しい無効なStepRequest
を作成します。 このEventRequestManagerが管理するリストに新しいイベント要求が追加されます。 このイベント要求を有効にするには、EventRequest.enable()
を使用します。返される要求は、指定された
thread
でのステップ実行だけを制御します。他のすべてのスレッドは、影響を受けません。StepRequest.STEP_MIN
の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.{@link VirtualMachine#eventRequestManager eventRequestManager}(); StepRequest request = mgr.createStepRequest(myThread, StepRequest.{@link StepRequest#STEP_LINE STEP_LINE}, StepRequest.{@link StepRequest#STEP_OVER STEP_OVER}); request.{@link EventRequest#addCountFilter addCountFilter}(1); // next step only request.enable(); myVM.{@link VirtualMachine#resume resume}();
- パラメータ:
thread
- ステップ実行を行うスレッドdepth
- ステップの深さsize
- ステップ・サイズ- 戻り値:
- 作成された
StepRequest
- 例外:
DuplicateRequestException
- 指定されたスレッドに保留中ステップ要求がすでに存在する場合。IllegalArgumentException
size引数またはdepth引数に無効な値が含まれている場合。
-
createBreakpointRequest
BreakpointRequest createBreakpointRequest(Location location)
新しい無効なBreakpointRequest
を作成します。 指定されたLocation
には、有効な(負でない)コード・インデックスが必要です。 このEventRequestManagerが管理するリストに、新しいブレークポイントが追加されます。 1つの場所に複数のブレークポイントを設定可能です。 このイベント要求を有効にするには、EventRequest.enable()
を使用します。- パラメータ:
location
- 新しいブレークポイントの位置。- 戻り値:
- 作成された
BreakpointRequest
- 例外:
NativeMethodException
- 位置がネイティブ・メソッド内の場合。
-
createAccessWatchpointRequest
AccessWatchpointRequest createAccessWatchpointRequest(Field field)
指定されたフィールドへのアクセスを監視する新しい無効なウォッチポイントを作成します。 このEventRequestManagerが管理するリストに、新しいウォッチポイントが追加されます。 1つのフィールドに複数のウォッチポイントを設定可能です。 このイベント要求を有効にするには、EventRequest.enable()
を使用します。この操作は、ターゲット仮想マシンでサポートされていないことがあります。 この操作がサポートされているかどうかを確認するには、
VirtualMachine.canWatchFieldAccess()
を使用します。- パラメータ:
field
- 監視するフィールド- 戻り値:
- 作成されたウォッチポイント
- 例外:
UnsupportedOperationException
- ターゲット仮想マシンがこの操作をサポートしていない場合。
-
createModificationWatchpointRequest
ModificationWatchpointRequest createModificationWatchpointRequest(Field field)
指定されたフィールドへのアクセスを監視する新しい無効なウォッチポイントを作成します。 このEventRequestManagerが管理するリストに、新しいウォッチポイントが追加されます。 1つのフィールドに複数のウォッチポイントを設定可能です。 このイベント要求を有効にするには、EventRequest.enable()
を使用します。この操作は、ターゲット仮想マシンでサポートされていないことがあります。 この操作がサポートされているかどうかを確認するには、
VirtualMachine.canWatchFieldModification()
を使用します。- パラメータ:
field
- 監視するフィールド- 戻り値:
- 作成されたウォッチポイント
- 例外:
UnsupportedOperationException
- ターゲット仮想マシンがこの操作をサポートしていない場合。
-
createVMDeathRequest
VMDeathRequest createVMDeathRequest()
新しい無効なVMDeathRequest
を作成します。 このEventRequestManagerが管理するリストに、新しい要求が追加されます。 このイベント要求を有効にするには、EventRequest.enable()
を使用します。この要求は(有効な場合)、ターゲットVMの終了時に
VMDeathEvent
が送信されるようにします。VMDeathRequestと中断ポリシー
SUSPEND_ALL
を一緒に使用することで、VM停止前に着信するSUSPEND_NONE
またはSUSPEND_EVENT_THREAD
イベントを確実に処理できます。 すべてのイベント処理が、イベント・セットが読み込まれるスレッドと同じスレッドで行われている場合、VMDeathEvent
を含むEventSet
が再開されるまでVMが中断されるので、必要なのは要求を有効にすることだけです。この操作は、ターゲット仮想マシンでサポートされていないことがあります。 この操作がサポートされているかどうかを確認するには、
VirtualMachine.canRequestVMDeathEvent()
を使用します。- 戻り値:
- 作成された要求
- 例外:
UnsupportedOperationException
- ターゲットVMでこの操作がサポートされていない場合。- 導入されたバージョン:
- 1.4
-
deleteEventRequest
void deleteEventRequest(EventRequest eventRequest)
特定のeventRequestを削除します。 指定されたeventRequestは無効化され、このEventRequestManagerが管理する要求リストから削除されます。 eventRequestが削除されると、EventRequest.setEnabled(boolean)
などの操作は一切実行できなくなります。実行しようとすると、通常、InvalidRequestStateException
がスローされます。 なお、このメソッドは、その他のeventRequestには影響を与えません。このメソッドは基になるイベント要求リストを変更するため、要求アクセサを使って取得したリストから直接削除しようとすると、エラーが発生します。次に例を示します。
Iterator iter = requestManager.stepRequests().iterator(); while (iter.hasNext()) { requestManager.deleteEventRequest(iter.next()); }
ConcurrentModificationException
が発生することがあります。 代わりに、deleteEventRequests(List)
を使用するか、反復前にリストをコピーしてください。- パラメータ:
eventRequest
- 削除するeventRequest
-
deleteEventRequests
void deleteEventRequests(List<? extends EventRequest> eventRequests)
EventRequest
のリストを削除します。- パラメータ:
eventRequests
- 削除するeventRequestのリスト- 関連項目:
deleteEventRequest(EventRequest)
-
deleteAllBreakpoints
void deleteAllBreakpoints()
このEventRequestManagerが管理するすべてのブレークポイントを削除します。
-
stepRequests
List<StepRequest> stepRequests()
有効および無効なstepRequestsの変更不可能なリストを返します。 このリストはこれらの要求のライブ・ビューなので、要求が追加または削除されると変わります。- 戻り値:
- すべての
StepRequest
オブジェクト。
-
classPrepareRequests
List<ClassPrepareRequest> classPrepareRequests()
有効および無効なclassPrepareRequestsの変更不可能なリストを返します。 このリストはこれらの要求のライブ・ビューなので、要求が追加または削除されると変わります。- 戻り値:
- すべての
ClassPrepareRequest
オブジェクト。
-
classUnloadRequests
List<ClassUnloadRequest> classUnloadRequests()
有効および無効なclassUnloadRequestsの変更不可能なリストを返します。 このリストはこれらの要求のライブ・ビューなので、要求が追加または削除されると変わります。- 戻り値:
- すべての
ClassUnloadRequest
オブジェクト。
-
threadStartRequests
List<ThreadStartRequest> threadStartRequests()
有効および無効なthreadStartRequestsの変更不可能なリストを返します。 このリストはこれらの要求のライブ・ビューなので、要求が追加または削除されると変わります。- 戻り値:
- すべての
ThreadStartRequest
オブジェクト。
-
threadDeathRequests
List<ThreadDeathRequest> threadDeathRequests()
有効および無効なthreadDeathRequestsの変更不可能なリストを返します。 このリストはこれらの要求のライブ・ビューなので、要求が追加または削除されると変わります。- 戻り値:
- すべての
ThreadDeathRequest
オブジェクト。
-
exceptionRequests
List<ExceptionRequest> exceptionRequests()
有効および無効なexceptionRequestsの変更不可能なリストを返します。 このリストはこれらの要求のライブ・ビューなので、要求が追加または削除されると変わります。- 戻り値:
- すべての
ExceptionRequest
オブジェクト。
-
breakpointRequests
List<BreakpointRequest> breakpointRequests()
有効および無効なbreakpointRequestsの変更不可能なリストを返します。 このリストはこれらの要求のライブ・ビューなので、要求が追加または削除されると変わります。- 戻り値:
- すべての
BreakpointRequest
オブジェクトのリスト。
-
accessWatchpointRequests
List<AccessWatchpointRequest> accessWatchpointRequests()
有効および無効なaccessWatchpointRequestsの変更不可能なリストを返します。 このリストはこれらの要求のライブ・ビューなので、要求が追加または削除されると変わります。- 戻り値:
- すべての
AccessWatchpointRequest
オブジェクト。
-
modificationWatchpointRequests
List<ModificationWatchpointRequest> modificationWatchpointRequests()
有効および無効なmodificationWatchpointRequestsの変更不可能なリストを返します。 このリストはこれらの要求のライブ・ビューなので、要求が追加または削除されると変わります。- 戻り値:
- すべての
ModificationWatchpointRequest
オブジェクト。
-
methodEntryRequests
List<MethodEntryRequest> methodEntryRequests()
有効および無効なmethodEntryRequestsの変更不可能なリストを返します。 このリストはこれらの要求のライブ・ビューなので、要求が追加または削除されると変わります。- 戻り値:
- すべての
MethodEntryRequest
オブジェクトのリスト。
-
methodExitRequests
List<MethodExitRequest> methodExitRequests()
有効および無効なmethodExitRequestsの変更不可能なリストを返します。 このリストはこれらの要求のライブ・ビューなので、要求が追加または削除されると変わります。- 戻り値:
- すべての
MethodExitRequest
オブジェクトのリスト。
-
monitorContendedEnterRequests
List<MonitorContendedEnterRequest> monitorContendedEnterRequests()
有効なおよび無効なmonitorContendedEnterRequestsの変更不可能なリストを返します。 このリストはこれらの要求のライブ・ビューなので、要求が追加または削除されると変わります。- 戻り値:
- すべての
MonitorContendedEnterRequest
オブジェクトのリスト。 - 導入されたバージョン:
- 1.6
-
monitorContendedEnteredRequests
List<MonitorContendedEnteredRequest> monitorContendedEnteredRequests()
有効なおよび無効なmonitorContendedEnteredRequestsの変更不可能なリストを返します。 このリストはこれらの要求のライブ・ビューなので、要求が追加または削除されると変わります。- 戻り値:
- すべての
MonitorContendedEnteredRequest
オブジェクトのリスト。 - 導入されたバージョン:
- 1.6
-
monitorWaitRequests
List<MonitorWaitRequest> monitorWaitRequests()
有効なおよび無効なmonitorWaitRequestsの変更不可能なリストを返します。 このリストはこれらの要求のライブ・ビューなので、要求が追加または削除されると変わります。- 戻り値:
- すべての
MonitorWaitRequest
オブジェクトのリスト。 - 導入されたバージョン:
- 1.6
-
monitorWaitedRequests
List<MonitorWaitedRequest> monitorWaitedRequests()
有効なおよび無効なmonitorWaitedRequestsの変更不可能なリストを返します。 このリストはこれらの要求のライブ・ビューなので、要求が追加または削除されると変わります。- 戻り値:
- すべての
MonitorWaitedRequest
オブジェクトのリスト。 - 導入されたバージョン:
- 1.6
-
vmDeathRequests
List<VMDeathRequest> vmDeathRequests()
有効および無効なvmDeathRequestsの変更不可能なリストを返します。 このリストはこれらの要求のライブ・ビューなので、要求が追加または削除されると変わります。 ノート: 非要請VMDeathEventに対応する要求はありません。- 戻り値:
- すべての
VMDeathRequest
オブジェクトのリスト。 - 導入されたバージョン:
- 1.4
-
-