Интерфейс EventRequestManager
- Все суперинтерфейсы:
Mirror
public interface EventRequestManager extends Mirror
EventRequest. В конкретной виртуальной машине существует только один реализующий этот интерфейс, к которому можно получить доступ через VirtualMachine.eventRequestManager().
- С:
- 1.3
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
List |
accessWatchpointRequests() |
Возвращает неизменяемый список запросов на отслеживание доступа, включённых и выключенных. |
List |
breakpointRequests() |
Возвращает неизменяемый список запросов на точки останова, включённых и выключенных. |
List |
classPrepareRequests() |
Возвращает неизменяемый список запросов на подготовку классов, включённых и выключенных. |
List |
classUnloadRequests() |
Возвращает неизменяемый список запросов на разгрузку классов, включённых и выключенных. |
AccessWatchpointRequest |
createAccessWatchpointRequest |
Создаёт новый выключенный запрос на отслеживание доступа к указанному полю. |
BreakpointRequest |
createBreakpointRequest |
Создаёт новый выключенный запрос на точку останова. |
ClassPrepareRequest |
createClassPrepareRequest() |
Создаёт новый выключенный запрос на подготовку класса. |
ClassUnloadRequest |
createClassUnloadRequest() |
Создаёт новый выключенный запрос на разгрузку класса. |
ExceptionRequest |
createExceptionRequest |
Создаёт новый выключенный запрос на исключение. |
MethodEntryRequest |
createMethodEntryRequest() |
Создаёт новый выключенный запрос на вход в метод. |
MethodExitRequest |
createMethodExitRequest() |
Создаёт новый выключенный запрос на выход из метода. |
ModificationWatchpointRequest |
createModificationWatchpointRequest |
Создаёт новый выключенный запрос на отслеживание доступа к указанному полю. |
MonitorContendedEnteredRequest |
createMonitorContendedEnteredRequest() |
Создаёт новый выключенный запрос на вхождение в блокировку с ожиданием. |
MonitorContendedEnterRequest |
createMonitorContendedEnterRequest() |
Создаёт новый выключенный запрос на вхождение в блокировку. |
MonitorWaitedRequest |
createMonitorWaitedRequest() |
Создаёт новый выключенный запрос на ожидание монитора. |
MonitorWaitRequest |
createMonitorWaitRequest() |
Создаёт новый выключенный запрос на ожидание монитора. |
StepRequest |
createStepRequest |
Создаёт новый выключенный запрос на шаг выполнения. |
ThreadDeathRequest |
createThreadDeathRequest() |
Создаёт новый выключенный запрос на завершение потока. |
ThreadStartRequest |
createThreadStartRequest() |
Создаёт новый выключенный запрос на запуск потока. |
VMDeathRequest |
createVMDeathRequest() |
Создаёт новый выключенный запрос на завершение виртуальной машины. |
void |
deleteAllBreakpoints() |
Удаляет все точки останова, управляемые этим EventRequestManager. |
void |
deleteEventRequest |
Удаляет запрос на событие. |
void |
deleteEventRequests |
Удаляет список запросов на события. |
List |
exceptionRequests() |
Возвращает неизменяемый список запросов на исключения, включённых и выключенных. |
List |
methodEntryRequests() |
Возвращает неизменяемый список запросов на вход в метод, включённых и выключенных. |
List |
methodExitRequests() |
Возвращает неизменяемый список запросов на выход из метода, включённых и выключенных. |
List |
modificationWatchpointRequests() |
Возвращает неизменяемый список запросов на изменение, включённых и выключенных. |
List |
monitorContendedEnteredRequests() |
Возвращает неизменяемый список запросов на вхождение в блокировку с ожиданием, включённых и выключенных. |
List |
monitorContendedEnterRequests() |
Возвращает неизменяемый список запросов на вхождение в блокировку, включённых и выключенных. |
List |
monitorWaitedRequests() |
Возвращает неизменяемый список запросов на ожидание монитора, включённых и выключенных. |
List |
monitorWaitRequests() |
Возвращает неизменяемый список запросов на ожидание монитора, включённых и выключенных. |
List |
stepRequests() |
Возвращает неизменяемый список запросов на шаг выполнения, включённых и выключенных. |
List |
threadDeathRequests() |
Возвращает неизменяемый список запросов на завершение потока, включённых и выключенных. |
List |
threadStartRequests() |
Возвращает неизменяемый список запросов на запуск потока, включённых и выключенных. |
List |
vmDeathRequests() |
Возвращает неизменяемый список запросов на завершение виртуальной машины, включённых и выключенных. |
Методы, объявленные в интерфейсе 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- если целевая виртуальная машина не поддерживает эту операцию. - С момента:
- 1.6
createMonitorContendedEnteredRequest
MonitorContendedEnteredRequest createMonitorContendedEnteredRequest()
MonitorContendedEnteredRequest. Новый запрос события добавляется в список, управляемый этим EventRequestManager. Используйте EventRequest.enable() для активации этого запроса события. Не все целевые виртуальные машины поддерживают эту операцию. Используйте VirtualMachine.canRequestMonitorEvents() для определения поддержки операции.- Возвращает:
- созданный
MonitorContendedEnteredRequest - Исключения:
-
UnsupportedOperationException- если целевая виртуальная машина не поддерживает эту операцию. - С момента:
- 1.6
createMonitorWaitRequest
MonitorWaitRequest createMonitorWaitRequest()
MonitorWaitRequest. Новый запрос события добавляется в список, управляемый этим EventRequestManager. Используйте EventRequest.enable() для активации этого запроса события. Не все целевые виртуальные машины поддерживают эту операцию. Используйте VirtualMachine.canRequestMonitorEvents() для определения поддержки операции.- Возвращает:
- созданный
MonitorWaitRequest - Исключения:
-
UnsupportedOperationException- если целевая виртуальная машина не поддерживает эту операцию. - С момента:
- 1.6
createMonitorWaitedRequest
MonitorWaitedRequest createMonitorWaitedRequest()
MonitorWaitedRequest. Новый запрос события добавляется в список, управляемый этим EventRequestManager. Используйте EventRequest.enable() для активации этого запроса события. Не все целевые виртуальные машины поддерживают эту операцию. Используйте VirtualMachine.canRequestMonitorEvents() для определения поддержки операции.- Возвращает:
- созданный
MonitorWaitedRequest - Исключения:
-
UnsupportedOperationException- если целевая виртуальная машина не поддерживает эту операцию. - С момента:
- 1.6
createStepRequest
StepRequest createStepRequest(ThreadReference thread, int size, int depth)
StepRequest. Новый запрос события добавляется в список, управляемый этим EventRequestManager. Используйте EventRequest.enable() для активации этого запроса события. Возвращаемый запрос будет управлять шагом только в указанном thread; все остальные потоки останутся незатронутыми. Значение size StepRequest.STEP_MIN сгенерирует событие шага каждый раз, когда изменяется индекс кода. Это представляет наименьший размер шага, доступный и часто соответствует уровню инструкций. Значение size StepRequest.STEP_LINE сгенерирует событие шага каждый раз, когда изменяется строка исходного кода, если информация о номере строки недоступна, в этом случае будет выполнен STEP_MIN. Например, информация о номере строки недоступна во время выполнения метода, который был устаревшим из-за операции VirtualMachine.redefineClasses(java.util.Map<? extends com.sun.jdi.ReferenceType, byte[]>). Значение depth StepRequest.STEP_INTO сгенерирует события шага во всех вызываемых методах. Значение depth StepRequest.STEP_OVER ограничивает события шага текущей или вызывающими кадрами. Значение depth StepRequest.STEP_OUT ограничивает события шага только вызывающими кадрами. Все ограничения по глубине относительны к стеку вызовов непосредственно перед выполнением шага.
Разрешен только один ожидающий запрос шага на поток.
Обратите внимание, что типичный отладчик захочет отменить шаг после обнаружения первого шага. Таким образом, метод следующей строки выполнит следующее:
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- поток, в котором нужно выполнить шаг -
size- размер шага -
depth- глубина шага - Возвращает:
- созданный
StepRequest - Исключения:
-
DuplicateRequestException- если уже существует ожидающий запрос шага для указанного потока. -
IllegalArgumentException- если аргументы размера или глубины содержат недопустимые значения.
createBreakpointRequest
BreakpointRequest createBreakpointRequest(Location location)
BreakpointRequest. Указанный Location должен иметь допустимый (то есть неотрицательный) индекс кода. Новый брейкпоинт добавляется в список, управляемый этим EventRequestManager. Несколько брейкпоинтов в одном месте допускаются. Используйте EventRequest.enable() для активации этого запроса событий.- Parameters:
-
location- расположение нового брейкпоинта. - Returns:
- созданный
BreakpointRequest - Throws:
-
NativeMethodException- если местоположение находится внутри метода нативного кода.
createAccessWatchpointRequest
AccessWatchpointRequest createAccessWatchpointRequest(Field field)
EventRequest.enable() для активации этого запроса события. Не все целевые виртуальные машины поддерживают эту операцию. Используйте VirtualMachine.canWatchFieldAccess() для определения, поддерживается ли операция.
- Parameters:
-
field- поле для наблюдения - Returns:
- созданный наблюдательный пункт
- Throws:
-
UnsupportedOperationException- если целевая виртуальная машина не поддерживает эту операцию.
createModificationWatchpointRequest
ModificationWatchpointRequest createModificationWatchpointRequest(Field field)
EventRequest.enable() для активации этого запроса события. Не все целевые виртуальные машины поддерживают эту операцию. Используйте VirtualMachine.canWatchFieldModification() для определения, поддерживается ли операция.
- Parameters:
-
field- поле для наблюдения - Returns:
- созданный наблюдательный пункт
- Throws:
-
UnsupportedOperationException- если целевая виртуальная машина не поддерживает эту операцию.
createVMDeathRequest
VMDeathRequest createVMDeathRequest()
VMDeathRequest. Новый запрос добавляется в список, управляемый этим EventRequestManager. Используйте EventRequest.enable() для активации этого запроса события. Этот запрос (если он активирован) заставит отправить VMDeathEvent при завершении целевой VM.
VMDeathRequest с политикой приостановки SUSPEND_ALL может использоваться для обеспечения обработки входящих SUSPEND_NONE или SUSPEND_EVENT_THREAD событий до смерти VM. Если вся обработка событий выполняется в том же потоке, что и считывание наборов событий, включение запроса — всё, что нужно, так как VM будет приостановлена, пока не будет возобновлён EventSet, содержащий VMDeathEvent.
Не все целевые виртуальные машины поддерживают эту операцию. Используйте VirtualMachine.canRequestVMDeathEvent() для определения, поддерживается ли операция.
- Returns:
- созданный запрос
- Throws:
-
UnsupportedOperationException- если целевая VM не поддерживает эту операцию. - Since:
- 1.4
deleteEventRequest
void deleteEventRequest(EventRequest eventRequest)
EventRequest.setEnabled(boolean)) не разрешены - попытки сделать это, как правило, приведут к InvalidRequestStateException. Никакие другие eventRequests не затронуты. Поскольку этот метод изменяет базовые списки запросов событий, попытки прямого удаления из списка, возвращенного аксессором запроса (например, ниже):
Iterator iter = requestManager.stepRequests().iterator();
while (iter.hasNext()) {
requestManager.deleteEventRequest(iter.next());
}
может вызвать ConcurrentModificationException. Вместо этого используйте deleteEventRequests(List) или скопируйте список перед итерацией.- Parameters:
-
eventRequest- eventRequest для удаления
deleteEventRequests
void deleteEventRequests(List<? extends EventRequest> eventRequests)
EventRequests.- Parameters:
-
eventRequests- список eventRequests для удаления - See Also:
deleteAllBreakpoints
void deleteAllBreakpoints()
- See Also:
stepRequests
List<StepRequest> stepRequests()
- Returns:
- все
StepRequestобъекты.
classPrepareRequests
List<ClassPrepareRequest> classPrepareRequests()
- Returns:
- все
ClassPrepareRequestобъекты.
classUnloadRequests
List<ClassUnloadRequest> classUnloadRequests()
- Returns:
- все
ClassUnloadRequestобъекты.
threadStartRequests
List<ThreadStartRequest> threadStartRequests()
- Returns:
- все
ThreadStartRequestобъекты.
threadDeathRequests
List<ThreadDeathRequest> threadDeathRequests()
- Returns:
- все
ThreadDeathRequestобъекты.
exceptionRequests
List<ExceptionRequest> exceptionRequests()
- Returns:
- все
ExceptionRequestобъекты.
breakpointRequests
List<BreakpointRequest> breakpointRequests()
- Returns:
- список всех
BreakpointRequestобъектов.
accessWatchpointRequests
List<AccessWatchpointRequest> accessWatchpointRequests()
- Returns:
- все
AccessWatchpointRequestобъекты.
modificationWatchpointRequests
List<ModificationWatchpointRequest> modificationWatchpointRequests()
- Returns:
- все
ModificationWatchpointRequestобъекты.
methodEntryRequests
List<MethodEntryRequest> methodEntryRequests()
- Returns:
- список всех
MethodEntryRequestобъектов.
methodExitRequests
List<MethodExitRequest> methodExitRequests()
- Returns:
- список всех
MethodExitRequestобъектов.
monitorContendedEnterRequests
List<MonitorContendedEnterRequest> monitorContendedEnterRequests()
- Возвращает:
- список всех
MonitorContendedEnterRequestобъектов. - С:
- 1.6
monitorContendedEnteredRequests
List<MonitorContendedEnteredRequest> monitorContendedEnteredRequests()
- Возвращает:
- список всех
MonitorContendedEnteredRequestобъектов. - С:
- 1.6
monitorWaitRequests
List<MonitorWaitRequest> monitorWaitRequests()
- Возвращает:
- список всех
MonitorWaitRequestобъектов. - С:
- 1.6
monitorWaitedRequests
List<MonitorWaitedRequest> monitorWaitedRequests()
- Возвращает:
- список всех
MonitorWaitedRequestобъектов. - С:
- 1.6
vmDeathRequests
List<VMDeathRequest> vmDeathRequests()
- Возвращает:
- список всех
VMDeathRequestобъектов. - С:
- 1.4
© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/jdk.jdi/com/sun/jdi/request/EventRequestManager.html