Интерфейс 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 |
Удаляет eventRequest. |
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() |
Возвращает список (не изменяемый) разрешенных и запрещенных запросов на смерть виртуальной машины. |
Методы, объявленные в интерфейсе 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}();
- Parameters:
-
thread- поток, в котором нужно выполнить шаг -
size- размер шага -
depth- глубина шага - Returns:
- созданный
StepRequest - Throws:
-
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 при завершении целевой виртуальной машины.
VMDeathRequest с политикой приостановки SUSPEND_ALL может использоваться для обеспечения обработки входящих SUSPEND_NONE или SUSPEND_EVENT_THREAD событий до смерти виртуальной машины. Если вся обработка событий выполняется в том же потоке, что и чтение наборов событий, для включения запроса достаточно, так как виртуальная машина будет приостановлена до возобновления EventSet, содержащего VMDeathEvent.
Не все целевые виртуальные машины поддерживают эту операцию. Используйте VirtualMachine.canRequestVMDeathEvent() для определения поддержки операции.
- Returns:
- созданный запрос
- Throws:
-
UnsupportedOperationException- если целевая виртуальная машина не поддерживает эту операцию. - 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)
EventRequest.- 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.
Запросы на запуск потоков
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. - С момента:
- 1.6
Запросы на конкурентный вход в монитор (завершённый)
List<MonitorContendedEnteredRequest> monitorContendedEnteredRequests()
- Возвращает:
- список всех объектов
MonitorContendedEnteredRequest. - С момента:
- 1.6
Запросы на ожидание монитора
List<MonitorWaitRequest> monitorWaitRequests()
- Возвращает:
- список всех объектов
MonitorWaitRequest. - С момента:
- 1.6
Запросы на ожидание монитора (завершённые)
List<MonitorWaitedRequest> monitorWaitedRequests()
- Возвращает:
- список всех объектов
MonitorWaitedRequest. - С момента:
- 1.6
Запросы на завершение виртуальной машины
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://download.java.net/java/early_access/jdk24/docs/api/jdk.jdi/com/sun/jdi/request/EventRequestManager.html