Spec-Zone.ru › OpenJDK 17

Интерфейс 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()
Возвращает список, содержащий разрешенные и отключенные запросы на смерть виртуальной машины.

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

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

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

createModificationWatchpointRequest

ModificationWatchpointRequest createModificationWatchpointRequest(Field field)
Создаёт новый отключённый watchpoint, который отслеживает обращения к указанному полю. Новый watchpoint добавляется в список, управляемый этим EventRequestManager. Несколько watchpoint на одном поле разрешены. Используйте 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. 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)
Удаляет список EventRequest.
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()
Возвращает неизменяемый список включённых и отключённых запросов watchpoint доступа. Этот список представляет собой динамическое представление этих запросов и, следовательно, изменяется по мере добавления и удаления запросов.
Returns:
все объекты AccessWatchpointRequest.

modificationWatchpointRequests

List<ModificationWatchpointRequest> modificationWatchpointRequests()
Возвращает неизменяемый список включённых и отключённых запросов watchpoint модификации. Этот список представляет собой динамическое представление этих запросов и, следовательно, изменяется по мере добавления и удаления запросов.
Returns:
все объекты ModificationWatchpointRequest.

methodEntryRequests

List<MethodEntryRequest> methodEntryRequests()
Возвращает неизменяемый список включённых и отключённых запросов входа в метод. Этот список представляет собой динамическое представление этих запросов и, следовательно, изменяется по мере добавления и удаления запросов.
Returns:
список всех объектов MethodEntryRequest.
END_OF_DOCUMENT_MARKER

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

Spec-Zone.ru

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