Spec-Zone.ru › OpenJDK 25

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

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

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

Параметры:
field — поле для отслеживания
Возвращает:
созданную точку наблюдения
Выбрасывает:
UnsupportedOperationException — если целевая виртуальная машина не поддерживает эту операцию.

createModificationWatchpointRequest

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

deleteAllBreakpoints

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

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

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее дочерних компаний в США и других странах.
Авторские права © 1993, 2025, Oracle и/или ее дочерние компании, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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

Spec-Zone.ru

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