Spec-Zone.ru › OpenJDK 21

Интерфейс EventRequestManager

Все суперинтерфейсы:
Mirror
public interface EventRequestManager extends Mirror
Управляет созданием и удалением EventRequest. В конкретной виртуальной машине существует только один реализующий этот интерфейс, к которому можно получить доступ через VirtualMachine.eventRequestManager().
С:
1.3
См. также:
  • EventRequest
  • Event
  • BreakpointRequest
  • BreakpointEvent
  • VirtualMachine

Краткое описание методов

Модификатор и тип Метод Описание
List<AccessWatchpointRequest> accessWatchpointRequests()
Возвращает неизменяемый список запросов на отслеживание доступа, включённых и выключенных.
List<BreakpointRequest> breakpointRequests()
Возвращает неизменяемый список запросов на точки останова, включённых и выключенных.
List<ClassPrepareRequest> classPrepareRequests()
Возвращает неизменяемый список запросов на подготовку классов, включённых и выключенных.
List<ClassUnloadRequest> classUnloadRequests()
Возвращает неизменяемый список запросов на разгрузку классов, включённых и выключенных.
AccessWatchpointRequest createAccessWatchpointRequest(Field field)
Создаёт новый выключенный запрос на отслеживание доступа к указанному полю.
BreakpointRequest createBreakpointRequest(Location location)
Создаёт новый выключенный запрос на точку останова.
ClassPrepareRequest createClassPrepareRequest()
Создаёт новый выключенный запрос на подготовку класса.
ClassUnloadRequest createClassUnloadRequest()
Создаёт новый выключенный запрос на разгрузку класса.
ExceptionRequest createExceptionRequest(ReferenceType refType, boolean notifyCaught, boolean notifyUncaught)
Создаёт новый выключенный запрос на исключение.
MethodEntryRequest createMethodEntryRequest()
Создаёт новый выключенный запрос на вход в метод.
MethodExitRequest createMethodExitRequest()
Создаёт новый выключенный запрос на выход из метода.
ModificationWatchpointRequest createModificationWatchpointRequest(Field field)
Создаёт новый выключенный запрос на отслеживание доступа к указанному полю.
MonitorContendedEnteredRequest createMonitorContendedEnteredRequest()
Создаёт новый выключенный запрос на вхождение в блокировку с ожиданием.
MonitorContendedEnterRequest createMonitorContendedEnterRequest()
Создаёт новый выключенный запрос на вхождение в блокировку.
MonitorWaitedRequest createMonitorWaitedRequest()
Создаёт новый выключенный запрос на ожидание монитора.
MonitorWaitRequest createMonitorWaitRequest()
Создаёт новый выключенный запрос на ожидание монитора.
StepRequest createStepRequest(ThreadReference thread, int size, int depth)
Создаёт новый выключенный запрос на шаг выполнения.
ThreadDeathRequest createThreadDeathRequest()
Создаёт новый выключенный запрос на завершение потока.
ThreadStartRequest createThreadStartRequest()
Создаёт новый выключенный запрос на запуск потока.
VMDeathRequest createVMDeathRequest()
Создаёт новый выключенный запрос на завершение виртуальной машины.
void deleteAllBreakpoints()
Удаляет все точки останова, управляемые этим EventRequestManager.
void deleteEventRequest(EventRequest eventRequest)
Удаляет запрос на событие.
void deleteEventRequests(List<? extends EventRequest> eventRequests)
Удаляет список запросов на события.
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 ограничивает события шага только вызывающими кадрами. Все ограничения по глубине относительны к стеку вызовов непосредственно перед выполнением шага.

Разрешен только один ожидающий запрос шага на поток.

Обратите внимание, что типичный отладчик захочет отменить шаг после обнаружения первого шага. Таким образом, метод следующей строки выполнит следующее:


     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)
Создаёт новый отключённый наблюдательный пункт, который следит за доступом к указанному полю. Новый наблюдательный пункт добавляется в список, управляемый этим EventRequestManager. Несколько наблюдательных пунктов для одного и того же поля допускаются. Используйте EventRequest.enable() для активации этого запроса события.

Не все целевые виртуальные машины поддерживают эту операцию. Используйте VirtualMachine.canWatchFieldAccess() для определения, поддерживается ли операция.

Parameters:
field - поле для наблюдения
Returns:
созданный наблюдательный пункт
Throws:
UnsupportedOperationException - если целевая виртуальная машина не поддерживает эту операцию.

createModificationWatchpointRequest

ModificationWatchpointRequest createModificationWatchpointRequest(Field field)
Создаёт новый отключённый наблюдательный пункт, который следит за доступом к указанному полю. Новый наблюдательный пункт добавляется в список, управляемый этим EventRequestManager. Несколько наблюдательных пунктов для одного и того же поля допускаются. Используйте 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. eventRequest отключается и удаляется из запросов, управляемых этим EventRequestManager. После удаления 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:
  • deleteEventRequest(EventRequest)

deleteAllBreakpoints

void deleteAllBreakpoints()
Удаляет все брейкпоинты, управляемые этим EventRequestManager.
See Also:
  • deleteEventRequest(EventRequest)

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()
Возвращает неизменяемый список включенных и выключенных запросов смерти виртуальной машины. Этот список представляет текущее состояние запросов, поэтому он изменяется при добавлении и удалении запросов. Примечание: неявное событие VMDeathEvent не имеет соответствующего запроса.
Возвращает:
список всех 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API