public interface EventRequestManager extends Mirror
EventRequest
s. A single
implementor of this interface exists in a particuar VM and
is accessed through VirtualMachine.eventRequestManager()
EventRequest
,
Event
,
BreakpointRequest
,
BreakpointEvent
,
VirtualMachine
Modifier and Type | Method and Description |
---|---|
List<AccessWatchpointRequest> |
accessWatchpointRequests()
Return an unmodifiable list of the enabled and disabled access
watchpoint requests.
|
List<BreakpointRequest> |
breakpointRequests()
Return an unmodifiable list of the enabled and disabled breakpoint requests.
|
List<ClassPrepareRequest> |
classPrepareRequests()
Return an unmodifiable list of the enabled and disabled class prepare requests.
|
List<ClassUnloadRequest> |
classUnloadRequests()
Return an unmodifiable list of the enabled and disabled class unload requests.
|
AccessWatchpointRequest |
createAccessWatchpointRequest(Field field)
Creates a new disabled watchpoint which watches accesses to the
specified field.
|
BreakpointRequest |
createBreakpointRequest(Location location)
Creates a new disabled
BreakpointRequest . |
ClassPrepareRequest |
createClassPrepareRequest()
Creates a new disabled
ClassPrepareRequest . |
ClassUnloadRequest |
createClassUnloadRequest()
Creates a new disabled
ClassUnloadRequest . |
ExceptionRequest |
createExceptionRequest(ReferenceType refType,
boolean notifyCaught,
boolean notifyUncaught)
Creates a new disabled
ExceptionRequest . |
MethodEntryRequest |
createMethodEntryRequest()
Creates a new disabled
MethodEntryRequest . |
MethodExitRequest |
createMethodExitRequest()
Creates a new disabled
MethodExitRequest . |
ModificationWatchpointRequest |
createModificationWatchpointRequest(Field field)
Creates a new disabled watchpoint which watches accesses to the
specified field.
|
MonitorContendedEnteredRequest |
createMonitorContendedEnteredRequest()
Creates a new disabled
MonitorContendedEnteredRequest . |
MonitorContendedEnterRequest |
createMonitorContendedEnterRequest()
Creates a new disabled
MonitorContendedEnterRequest . |
MonitorWaitedRequest |
createMonitorWaitedRequest()
Creates a new disabled
MonitorWaitedRequest . |
MonitorWaitRequest |
createMonitorWaitRequest()
Creates a new disabled
MonitorWaitRequest . |
StepRequest |
createStepRequest(ThreadReference thread,
int size,
int depth)
Creates a new disabled
StepRequest . |
ThreadDeathRequest |
createThreadDeathRequest()
Creates a new disabled
ThreadDeathRequest . |
ThreadStartRequest |
createThreadStartRequest()
Creates a new disabled
ThreadStartRequest . |
VMDeathRequest |
createVMDeathRequest()
Creates a new disabled
VMDeathRequest . |
void |
deleteAllBreakpoints()
Remove all breakpoints managed by this EventRequestManager.
|
void |
deleteEventRequest(EventRequest eventRequest)
Removes an eventRequest.
|
void |
deleteEventRequests(List<? extends EventRequest> eventRequests)
Removes a list of
EventRequest s. |
List<ExceptionRequest> |
exceptionRequests()
Return an unmodifiable list of the enabled and disabled exception requests.
|
List<MethodEntryRequest> |
methodEntryRequests()
Return an unmodifiable list of the enabled and disabled method entry requests.
|
List<MethodExitRequest> |
methodExitRequests()
Return an unmodifiable list of the enabled and disabled method exit requests.
|
List<ModificationWatchpointRequest> |
modificationWatchpointRequests()
Return an unmodifiable list of the enabled and disabled modification
watchpoint requests.
|
List<MonitorContendedEnteredRequest> |
monitorContendedEnteredRequests()
Return an unmodifiable list of the enabled and disabled monitor contended entered requests.
|
List<MonitorContendedEnterRequest> |
monitorContendedEnterRequests()
Return an unmodifiable list of the enabled and disabled monitor contended enter requests.
|
List<MonitorWaitedRequest> |
monitorWaitedRequests()
Return an unmodifiable list of the enabled and disabled monitor waited requests.
|
List<MonitorWaitRequest> |
monitorWaitRequests()
Return an unmodifiable list of the enabled and disabled monitor wait requests.
|
List<StepRequest> |
stepRequests()
Return an unmodifiable list of the enabled and disabled step requests.
|
List<ThreadDeathRequest> |
threadDeathRequests()
Return an unmodifiable list of the enabled and disabled thread death requests.
|
List<ThreadStartRequest> |
threadStartRequests()
Return an unmodifiable list of the enabled and disabled thread start requests.
|
List<VMDeathRequest> |
vmDeathRequests()
Return an unmodifiable list of the enabled and disabled VM death requests.
|
toString, virtualMachine
ClassPrepareRequest createClassPrepareRequest()
ClassPrepareRequest
.
The new event request is added to the list managed by this
EventRequestManager. Use EventRequest.enable()
to
activate this event request.ClassPrepareRequest
ClassUnloadRequest createClassUnloadRequest()
ClassUnloadRequest
.
The new event request is added to the list managed by this
EventRequestManager. Use EventRequest.enable()
to
activate this event request.ClassUnloadRequest
ThreadStartRequest createThreadStartRequest()
ThreadStartRequest
.
The new event request is added to the list managed by this
EventRequestManager. Use EventRequest.enable()
to
activate this event request.ThreadStartRequest
ThreadDeathRequest createThreadDeathRequest()
ThreadDeathRequest
.
The new event request is added to the list managed by this
EventRequestManager. Use EventRequest.enable()
to
activate this event request.ThreadDeathRequest
ExceptionRequest createExceptionRequest(ReferenceType refType, boolean notifyCaught, boolean notifyUncaught)
ExceptionRequest
.
The new event request is added to the list managed by this
EventRequestManager. Use EventRequest.enable()
to
activate this event request.
A specific exception type and its subclasses can be selected
for exception events. Caught exceptions, uncaught exceptions,
or both can be selected. Note, however, that
at the time an exception is thrown, it is not always
possible to determine whether it is truly caught. See
ExceptionEvent.catchLocation()
for
details.
refType
- If non-null, specifies that exceptions which are
instances of refType will be reported. Note: this
will include instances of sub-types. If null,
all instances will be reportednotifyCaught
- If true, caught exceptions will be reported.notifyUncaught
- If true, uncaught exceptions will be reported.ExceptionRequest
MethodEntryRequest createMethodEntryRequest()
MethodEntryRequest
.
The new event request is added to the list managed by this
EventRequestManager. Use EventRequest.enable()
to
activate this event request.MethodEntryRequest
MethodExitRequest createMethodExitRequest()
MethodExitRequest
.
The new event request is added to the list managed by this
EventRequestManager. Use EventRequest.enable()
to
activate this event request.MethodExitRequest
MonitorContendedEnterRequest createMonitorContendedEnterRequest()
MonitorContendedEnterRequest
.
The new event request is added to the list managed by this
EventRequestManager. Use EventRequest.enable()
to
activate this event request.
Not all target virtual machines support this operation.
Use VirtualMachine.canRequestMonitorEvents()
to determine if the operation is supported.MonitorContendedEnterRequest
UnsupportedOperationException
- if
the target VM does not support this
operation.MonitorContendedEnteredRequest createMonitorContendedEnteredRequest()
MonitorContendedEnteredRequest
.
The new event request is added to the list managed by this
EventRequestManager. Use EventRequest.enable()
to
activate this event request.
Not all target virtual machines support this operation.
Use VirtualMachine.canRequestMonitorEvents()
to determine if the operation is supported.MonitorContendedEnteredRequest
UnsupportedOperationException
- if
the target VM does not support this
operation.MonitorWaitRequest createMonitorWaitRequest()
MonitorWaitRequest
.
The new event request is added to the list managed by this
EventRequestManager. Use EventRequest.enable()
to
activate this event request.
Not all target virtual machines support this operation.
Use VirtualMachine.canRequestMonitorEvents()
to determine if the operation is supported.MonitorWaitRequest
UnsupportedOperationException
- if
the target VM does not support this
operation.MonitorWaitedRequest createMonitorWaitedRequest()
MonitorWaitedRequest
.
The new event request is added to the list managed by this
EventRequestManager. Use EventRequest.enable()
to
activate this event request.
Not all target virtual machines support this operation.
Use VirtualMachine.canRequestMonitorEvents()
to determine if the operation is supported.MonitorWaitedRequest
UnsupportedOperationException
- if
the target VM does not support this
operation.StepRequest createStepRequest(ThreadReference thread, int size, int depth)
StepRequest
.
The new event request is added to the list managed by this
EventRequestManager. Use EventRequest.enable()
to
activate this event request.
The returned request will control stepping only in the specified
thread
; all other threads will be unaffected.
A size
value of StepRequest.STEP_MIN
will generate a
step event each time the code index changes. It represents the
smallest step size available and often maps to the instruction
level.
A size
value of StepRequest.STEP_LINE
will generate a
step event each time the source line changes unless line number information is not available,
in which case a STEP_MIN will be done instead. For example, no line number information is
available during the execution of a method that has been rendered obsolete by
by a VirtualMachine.redefineClasses(java.util.Map<? extends com.sun.jdi.ReferenceType, byte[]>)
operation.
A depth
value of StepRequest.STEP_INTO
will generate
step events in any called methods. A depth
value
of StepRequest.STEP_OVER
restricts step events to the current frame
or caller frames. A depth
value of StepRequest.STEP_OUT
restricts step events to caller frames only. All depth
restrictions are relative to the call stack immediately before the
step takes place.
Only one pending step request is allowed per thread.
Note that a typical debugger will want to cancel stepping
after the first step is detected. Thus a next line method
would do the following:
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
- the thread in which to stepdepth
- the step depthsize
- the step sizeStepRequest
DuplicateRequestException
- if there is already a pending
step request for the specified thread.IllegalArgumentException
- if the size or depth arguments
contain illegal values.BreakpointRequest createBreakpointRequest(Location location)
BreakpointRequest
.
The given Location
must have a valid
(that is, non-negative) code index. The new
breakpoint is added to the list managed by this
EventRequestManager. Multiple breakpoints at the
same location are permitted. Use EventRequest.enable()
to
activate this event request.location
- the location of the new breakpoint.BreakpointRequest
NativeMethodException
- if location is within a native method.AccessWatchpointRequest createAccessWatchpointRequest(Field field)
EventRequest.enable()
to
activate this event request.
Not all target virtual machines support this operation.
Use VirtualMachine.canWatchFieldAccess()
to determine if the operation is supported.
field
- the field to watchUnsupportedOperationException
- if
the target virtual machine does not support this
operation.ModificationWatchpointRequest createModificationWatchpointRequest(Field field)
EventRequest.enable()
to
activate this event request.
Not all target virtual machines support this operation.
Use VirtualMachine.canWatchFieldModification()
to determine if the operation is supported.
field
- the field to watchUnsupportedOperationException
- if
the target virtual machine does not support this
operation.VMDeathRequest createVMDeathRequest()
VMDeathRequest
.
The new request is added to the list managed by this
EventRequestManager.
Use EventRequest.enable()
to
activate this event request.
This request (if enabled) will cause a
VMDeathEvent
to be sent on termination of the target VM.
A VMDeathRequest with a suspend policy of
SUSPEND_ALL
can be used to assure processing of incoming
SUSPEND_NONE
or
SUSPEND_EVENT_THREAD
events before VM death. If all event processing is being
done in the same thread as event sets are being read,
enabling the request is all that is needed since the VM
will be suspended until the EventSet
containing the VMDeathEvent
is resumed.
Not all target virtual machines support this operation.
Use VirtualMachine.canRequestVMDeathEvent()
to determine if the operation is supported.
UnsupportedOperationException
- if
the target VM does not support this
operation.void deleteEventRequest(EventRequest eventRequest)
EventRequest.setEnabled(boolean)
)
are permitted - attempts to do so will generally cause an
InvalidRequestStateException
.
No other eventRequests are effected.
Because this method changes the underlying lists of event requests, attempting to directly delete from a list returned by a request accessor (e.g. below):
Iterator iter = requestManager.stepRequests().iterator(); while (iter.hasNext()) { requestManager.deleteEventRequest(iter.next()); }may cause a
ConcurrentModificationException
.
Instead use
deleteEventRequests(List)
or copy the list before iterating.eventRequest
- the eventRequest to removevoid deleteEventRequests(List<? extends EventRequest> eventRequests)
EventRequest
s.eventRequests
- the list of eventRequests to removedeleteEventRequest(EventRequest)
void deleteAllBreakpoints()
deleteEventRequest(EventRequest)
List<StepRequest> stepRequests()
StepRequest
objects.List<ClassPrepareRequest> classPrepareRequests()
ClassPrepareRequest
objects.List<ClassUnloadRequest> classUnloadRequests()
ClassUnloadRequest
objects.List<ThreadStartRequest> threadStartRequests()
ThreadStartRequest
objects.List<ThreadDeathRequest> threadDeathRequests()
ThreadDeathRequest
objects.List<ExceptionRequest> exceptionRequests()
ExceptionRequest
objects.List<BreakpointRequest> breakpointRequests()
BreakpointRequest
objects.List<AccessWatchpointRequest> accessWatchpointRequests()
AccessWatchpointRequest
objects.List<ModificationWatchpointRequest> modificationWatchpointRequests()
ModificationWatchpointRequest
objects.List<MethodEntryRequest> methodEntryRequests()
MethodEntryRequest
objects.List<MethodExitRequest> methodExitRequests()
MethodExitRequest
objects.List<MonitorContendedEnterRequest> monitorContendedEnterRequests()
MonitorContendedEnterRequest
objects.List<MonitorContendedEnteredRequest> monitorContendedEnteredRequests()
MonitorContendedEnteredRequest
objects.List<MonitorWaitRequest> monitorWaitRequests()
MonitorWaitRequest
objects.List<MonitorWaitedRequest> monitorWaitedRequests()
MonitorWaitedRequest
objects.List<VMDeathRequest> vmDeathRequests()
VMDeathRequest
objects.
Copyright © 1999, 2020, Oracle and/or its affiliates. All rights reserved.