Интерфейс EventRequestManager
- Все суперинтерфейсы:
Mirror
public interface EventRequestManager extends Mirror
EventRequest. В конкретной виртуальной машине существует один объект, реализующий этот интерфейс, к которому можно получить доступ через VirtualMachine.eventRequestManager()
- С версии:
- 1.3
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
List |
accessWatchpointRequests() |
Возвращает неизменяемый список включённых и отключённых запросов на отслеживание чтения. |
List |
breakpointRequests() |
Возвращает неизменяемый список включённых и отключённых запросов на точки останова. |
List |
classPrepareRequests() |
Возвращает неизменяемый список включённых и отключённых запросов на подготовку классов. |
List |
classUnloadRequests() |
Возвращает неизменяемый список включённых и отключённых запросов на выгрузку классов. |
AccessWatchpointRequest |
createAccessWatchpointRequest |
Создаёт новый отключённый запрос на отслеживание доступа к указанному полю. |
BreakpointRequest |
createBreakpointRequest |
Создаёт новый отключённый BreakpointRequest. |
ClassPrepareRequest |
createClassPrepareRequest() |
Создаёт новый отключённый ClassPrepareRequest. |
ClassUnloadRequest |
createClassUnloadRequest() |
Создаёт новый отключённый ClassUnloadRequest. |
ExceptionRequest |
createExceptionRequest |
Создаёт новый отключённый ExceptionRequest. |
MethodEntryRequest |
createMethodEntryRequest() |
Создаёт новый отключённый MethodEntryRequest. |
MethodExitRequest |
createMethodExitRequest() |
Создаёт новый отключённый MethodExitRequest. |
ModificationWatchpointRequest |
createModificationWatchpointRequest |
Создаёт новый отключённый запрос на отслеживание доступа к указанному полю. |
MonitorContendedEnteredRequest |
createMonitorContendedEnteredRequest() |
Создаёт новый отключённый MonitorContendedEnteredRequest. |
MonitorContendedEnterRequest |
createMonitorContendedEnterRequest() |
Создаёт новый отключённый MonitorContendedEnterRequest. |
MonitorWaitedRequest |
createMonitorWaitedRequest() |
Создаёт новый отключённый MonitorWaitedRequest. |
MonitorWaitRequest |
createMonitorWaitRequest() |
Создаёт новый отключённый MonitorWaitRequest. |
StepRequest |
createStepRequest |
Создаёт новый отключённый StepRequest. |
ThreadDeathRequest |
createThreadDeathRequest() |
Создаёт новый отключённый ThreadDeathRequest. |
ThreadStartRequest |
createThreadStartRequest() |
Создаёт новый отключённый ThreadStartRequest. |
VMDeathRequest |
createVMDeathRequest() |
Создаёт новый отключённый VMDeathRequest. |
void |
deleteAllBreakpoints() |
Удаляет все точки останова, управляемые этим EventRequestManager. |
void |
deleteEventRequest |
Удаляет запрос события. |
void |
deleteEventRequests |
Удаляет список EventRequest. |
List |
exceptionRequests() |
Возвращает неизменяемый список включённых и отключённых запросов на исключения. |
List |
methodEntryRequests() |
Возвращает неизменяемый список включённых и отключённых запросов на вход в метод. |
List |
methodExitRequests() |
Возвращает неизменяемый список включённых и отключённых запросов на выход из метода. |
List |
modificationWatchpointRequests() |
Возвращает неизменяемый список включённых и отключённых запросов на отслеживание изменения. |
List |
monitorContendedEnteredRequests() |
Возвращает неизменяемый список включённых и отключённых запросов на вход в монитор после ожидания блокировки. |
List |
monitorContendedEnterRequests() |
Возвращает неизменяемый список включённых и отключённых запросов на попытку входа в занятый монитор. |
List |
monitorWaitedRequests() |
Возвращает неизменяемый список включённых и отключённых запросов на завершение ожидания монитора. |
List |
monitorWaitRequests() |
Возвращает неизменяемый список включённых и отключённых запросов на ожидание монитора. |
List |
stepRequests() |
Возвращает неизменяемый список включённых и отключённых запросов на пошаговое выполнение. |
List |
threadDeathRequests() |
Возвращает неизменяемый список включённых и отключённых запросов на завершение потока. |
List |
threadStartRequests() |
Возвращает неизменяемый список включённых и отключённых запросов на запуск потока. |
List |
vmDeathRequests() |
Возвращает неизменяемый список включённых и отключённых запросов на завершение виртуальной машины. |
Методы, объявленные в интерфейсе 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(Map). Значение 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(), чтобы активировать этот запрос события.- Параметры:
-
location— расположение новой точки останова. - Возвращает:
- созданный
BreakpointRequest - Выбрасывает:
-
NativeMethodException— если расположение находится внутри нативного метода.
createAccessWatchpointRequest
AccessWatchpointRequest createAccessWatchpointRequest(Field field)
EventRequest.enable(), чтобы активировать этот запрос события. Не все целевые виртуальные машины поддерживают эту операцию. Используйте VirtualMachine.canWatchFieldAccess(), чтобы определить, поддерживается ли эта операция.
- Параметры:
-
field— поле для отслеживания - Возвращает:
- созданную точку наблюдения
- Выбрасывает:
-
UnsupportedOperationException— если целевая виртуальная машина не поддерживает эту операцию.
createModificationWatchpointRequest
ModificationWatchpointRequest createModificationWatchpointRequest(Field field)
EventRequest.enable(), чтобы активировать этот запрос события. Не все целевые виртуальные машины поддерживают эту операцию. Используйте VirtualMachine.canWatchFieldModification(), чтобы определить, поддерживается ли эта операция.
- Параметры:
-
field— поле для отслеживания - Возвращает:
- созданную точку наблюдения
- Выбрасывает:
-
UnsupportedOperationException— если целевая виртуальная машина не поддерживает эту операцию.
createVMDeathRequest
VMDeathRequest createVMDeathRequest()
VMDeathRequest. Новый запрос добавляется в список, управляемый этим EventRequestManager. Используйте EventRequest.enable(), чтобы активировать этот запрос события. Этот запрос (если он включен) приведет к отправке VMDeathEvent при завершении работы целевой виртуальной машины.
VMDeathRequest с политикой приостановки SUSPEND_ALL можно использовать, чтобы гарантировать обработку входящих событий SUSPEND_NONE или SUSPEND_EVENT_THREAD до завершения работы виртуальной машины. Если вся обработка событий выполняется в том же потоке, в котором считываются наборы событий, достаточно включить запрос, поскольку виртуальная машина будет приостановлена до возобновления работы EventSet, содержащего VMDeathEvent.
Не все целевые виртуальные машины поддерживают эту операцию. Используйте VirtualMachine.canRequestVMDeathEvent(), чтобы определить, поддерживается ли эта операция.
- Возвращает:
- созданный запрос
- Выбрасывает:
-
UnsupportedOperationException— если целевая виртуальная машина не поддерживает эту операцию. - Начиная с версии:
- 1.4
deleteEventRequest
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— eventRequest для удаления
deleteEventRequests
void deleteEventRequests(List<? extends EventRequest> eventRequests)
EventRequest.- Параметры:
-
eventRequests— список eventRequest для удаления - См. также:
deleteAllBreakpoints
void deleteAllBreakpoints()
- См. также:
stepRequests
List<StepRequest> stepRequests()
- Возвращает:
- все объекты
StepRequest.
classPrepareRequests
List<ClassPrepareRequest> classPrepareRequests()
- Возвращает:
- все объекты
ClassPrepareRequest.
classUnloadRequests
List<ClassUnloadRequest> classUnloadRequests()
- Возвращает:
- все объекты
ClassUnloadRequest.
threadStartRequests
List<ThreadStartRequest> threadStartRequests()
- Возвращает:
- все объекты
ThreadStartRequest.
threadDeathRequests
List<ThreadDeathRequest> threadDeathRequests()
- Возвращает:
- все объекты
ThreadDeathRequest.
exceptionRequests
List<ExceptionRequest> exceptionRequests()
- Возвращает:
- все объекты
ExceptionRequest.
breakpointRequests
List<BreakpointRequest> breakpointRequests()
- Возвращает:
- список всех объектов
BreakpointRequest.
accessWatchpointRequests
List<AccessWatchpointRequest> accessWatchpointRequests()
- Возвращает:
- все объекты
AccessWatchpointRequest.
modificationWatchpointRequests
List<ModificationWatchpointRequest> modificationWatchpointRequests()
- Возвращает:
- все объекты
ModificationWatchpointRequest.
methodEntryRequests
List<MethodEntryRequest> methodEntryRequests()
- Возвращает:
- список всех объектов
MethodEntryRequest.
methodExitRequests
List<MethodExitRequest> methodExitRequests()
- Возвращает:
- список всех объектов
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, 2025, 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/25/docs/api/jdk.jdi/com/sun/jdi/request/EventRequestManager.html