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