Интерфейс 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(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 - поток, в котором необходимо сделать шаг
depth - глубина шага
size - размер шага
Возвращает:
созданный StepRequest
Исключение:
DuplicateRequestException - если уже существует запрос на шаг для указанного потока.
IllegalArgumentException - если аргументы размера или глубины содержат недопустимые значения.

createBreakpointRequest

BreakpointRequest createBreakpointRequest(Location location)

Создаёт новый отключённый BreakpointRequest. У данного Location должен быть действительный (то есть неотрицательный) индекс кода. Новый брейкпоинт добавляется в список, управляемый этим EventRequestManager. Несколько брейкпоинтов в одном месте разрешены. Используйте EventRequest.enable(), чтобы активировать этот запрос события.

Параметры:
location - местоположение нового брейкпоинта.
Возвращает:
созданный BreakpointRequest
Исключение:
NativeMethodException - если местоположение находится в методе нативного кода.

createAccessWatchpointRequest

AccessWatchpointRequest createAccessWatchpointRequest(Field field)

Создаёт новый отключённый watchpoint, который следит за доступами к указанному полю. Новый watchpoint добавляется в список, управляемый этим EventRequestManager. Несколько watchpoint на одном поле разрешены. Используйте EventRequest.enable(), чтобы активировать этот запрос события.

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

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

createModificationWatchpointRequest

ModificationWatchpointRequest createModificationWatchpointRequest(Field field)

Создает новый отключенный наблюдатель за точкой останова, который отслеживает доступ к указанному полю. Новый наблюдатель добавляется в список, управляемый этим EventRequestManager. Разрешено несколько наблюдателей за одним и тем же полем. Для активации этого запроса на событие используйте EventRequest.enable().

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

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

createVMDeathRequest

VMDeathRequest createVMDeathRequest()

Создает новый отключенный VMDeathRequest. Новый запрос добавляется в список, управляемый этим EventRequestManager. Для активации этого запроса на событие используйте EventRequest.enable().

Этот запрос (если он активирован) вызовет отправку VMDeathEvent при завершении целевой VM.

Запрос VMDeathRequest с политикой приостановки SUSPEND_ALL можно использовать для обеспечения обработки входящих SUSPEND_NONE или SUSPEND_EVENT_THREAD событий до завершения работы VM. Если вся обработка событий выполняется в том же потоке, что и чтение наборов событий, для активации запроса достаточно включить его, поскольку VM будет приостановлена до возобновления EventSet, содержащего VMDeathEvent.

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

Возвращает:
созданный запрос
Исключения:
UnsupportedOperationException - если целевая VM не поддерживает эту операцию.
С:
1.4

deleteEventRequest

void deleteEventRequest(EventRequest eventRequest)

Удаляет запрос на событие. Запрос на событие отключается и удаляется из запросов, управляемых этим EventRequestManager. После удаления запроса на событие операции (например, EventRequest.setEnabled(boolean)) недоступны — попытки их выполнения, как правило, приведут к возникновению InvalidRequestStateException. Другие запросы на события не затрагиваются.

Поскольку этот метод изменяет базовые списки запросов на события, попытки прямого удаления из списка, возвращаемого аксессором запроса (например, ниже):

Iterator iter = requestManager.stepRequests().iterator();
   while (iter.hasNext()) {
      requestManager.deleteEventRequest(iter.next());
  }
может привести к возникновению ConcurrentModificationException. Вместо этого используйте deleteEventRequests(List) или скопируйте список перед итерацией.
Параметры:
eventRequest - запрос на событие для удаления

deleteEventRequests

void deleteEventRequests(List<? extends EventRequest> eventRequests)

Удаляет список EventRequest.

Параметры:
eventRequests - список запросов на события для удаления
См. также:
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()

Возвращает неизменяемый список запросов на завершение работы VM, включенных и выключенных. Этот список представляет текущее состояние этих запросов, следовательно, меняется по мере добавления и удаления запросов. Примечание: неявное событие VMDeathEvent не имеет соответствующего запроса.

Возвращает:
список всех объектов VMDeathRequest.
С:
1.4

© 1993, 2020, 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/11/docs/api/jdk.jdi/com/sun/jdi/request/EventRequestManager.html

Spec-Zone .ru
спецификации, руководства, описания, API