Интерфейс EventRequestManager
- Все суперинтерфейсы:
Mirror
public interface EventRequestManager extends Mirror
EventRequest. Единственный реализующий этот интерфейс объект существует в конкретной виртуальной машине и доступен через VirtualMachine.eventRequestManager().
- С тех пор:
- 1.3
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
List<AccessWatchpointRequest> |
accessWatchpointRequests() |
Возвращает список, содержащий разрешенные и отключенные запросы наблюдения за доступом. |
List<BreakpointRequest> |
breakpointRequests() |
Возвращает список, содержащий разрешенные и отключенные запросы на точки останова. |
List<ClassPrepareRequest> |
classPrepareRequests() |
Возвращает список, содержащий разрешенные и отключенные запросы подготовки класса. |
List<ClassUnloadRequest> |
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<ExceptionRequest> |
exceptionRequests() |
Возвращает список, содержащий разрешенные и отключенные запросы на исключения. |
List<MethodEntryRequest> |
methodEntryRequests() |
Возвращает список, содержащий разрешенные и отключенные запросы на вход в метод. |
List<MethodExitRequest> |
methodExitRequests() |
Возвращает список, содержащий разрешенные и отключенные запросы на выход из метода. |
List<ModificationWatchpointRequest> |
modificationWatchpointRequests() |
Возвращает список, содержащий разрешенные и отключенные запросы наблюдения за изменениями. |
List<MonitorContendedEnteredRequest> |
monitorContendedEnteredRequests() |
Возвращает список, содержащий разрешенные и отключенные запросы на вхождение в состояние ожидания монитора. |
List<MonitorContendedEnterRequest> |
monitorContendedEnterRequests() |
Возвращает список, содержащий разрешенные и отключенные запросы на вхождение в состояние ожидания монитора. |
List<MonitorWaitedRequest> |
monitorWaitedRequests() |
Возвращает список, содержащий разрешенные и отключенные запросы ожидания монитора. |
List<MonitorWaitRequest> |
monitorWaitRequests() |
Возвращает список, содержащий разрешенные и отключенные запросы ожидания монитора. |
List<StepRequest> |
stepRequests() |
Возвращает список, содержащий разрешенные и отключенные запросы на шаг выполнения. |
List<ThreadDeathRequest> |
threadDeathRequests() |
Возвращает список, содержащий разрешенные и отключенные запросы на смерть потока. |
List<ThreadStartRequest> |
threadStartRequests() |
Возвращает список, содержащий разрешенные и отключенные запросы на запуск потока. |
List<VMDeathRequest> |
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 ограничивает события шага только для вызывающих областей. Все ограничения по глубине относительны к стеку вызовов непосредственно перед выполнением шага.
В потоке разрешается только один запрос шага.
Обратите внимание, что типичный отладчик захочет отменить выполнение шага после обнаружения первого шага. Таким образом, метод next line будет выполнять следующее:
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- если аргументы размера или глубины содержат недопустимые значения.
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:
- созданный watchpoint
- Throws:
-
UnsupportedOperationException- если целевая виртуальная машина не поддерживает эту операцию.
createModificationWatchpointRequest
ModificationWatchpointRequest createModificationWatchpointRequest(Field field)
EventRequest.enable() для активации этого запроса на событие. Не все виртуальные машины целевого окружения поддерживают эту операцию. Используйте VirtualMachine.canWatchFieldModification() для определения, поддерживается ли операция.
- Parameters:
-
field- поле для отслеживания - Returns:
- созданный watchpoint
- 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.
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()
- Возвращает:
- список всех объектов
MethodExitRequest.
monitorContendedEnterRequests
List<MonitorContendedEnterRequest> monitorContendedEnterRequests()
- Возвращает:
- список всех объектов
MonitorContendedEnterRequest. - Since:
- 1.6
monitorContendedEnteredRequests
List<MonitorContendedEnteredRequest> monitorContendedEnteredRequests()
- Возвращает:
- список всех объектов
MonitorContendedEnteredRequest. - Since:
- 1.6
monitorWaitRequests
List<MonitorWaitRequest> monitorWaitRequests()
- Возвращает:
- список всех объектов
MonitorWaitRequest. - Since:
- 1.6
monitorWaitedRequests
List<MonitorWaitedRequest> monitorWaitedRequests()
- Возвращает:
- список всех объектов
MonitorWaitedRequest. - Since:
- 1.6
vmDeathRequests
List<VMDeathRequest> vmDeathRequests()
- Возвращает:
- список всех объектов
VMDeathRequest. - Since:
- 1.4
© 1993, 2021, 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/17/docs/api/jdk.jdi/com/sun/jdi/request/EventRequestManager.html