Интерфейс EventRequest
- Все суперинтерфейсы:
Mirror
- Все известные подинтерфейсы:
-
AccessWatchpointRequest,BreakpointRequest,ClassPrepareRequest,ClassUnloadRequest,ExceptionRequest,MethodEntryRequest,MethodExitRequest,ModificationWatchpointRequest,MonitorContendedEnteredRequest,MonitorContendedEnterRequest,MonitorWaitedRequest,MonitorWaitRequest,StepRequest,ThreadDeathRequest,ThreadStartRequest,VMDeathRequest,WatchpointRequest
public interface EventRequest extends Mirror
BreakpointRequest и ExceptionRequest. Когда происходит событие, для которого присутствует разрешённый запрос, EventSet будет помещён в EventQueue. Коллекция существующих запросов на события управляется EventRequestManager. Количество событий, сгенерированных для запроса на событие, может быть контролировано через фильтры. Фильтры обеспечивают дополнительные ограничения, которые должно удовлетворять событие перед тем, как оно будет помещено в очередь событий. Несколько фильтров могут быть использованы, выполняя несколько вызовов методов добавления фильтров, таких как ExceptionRequest.addClassFilter(java.lang.String classPattern). Фильтры добавляются к событию по одному, только когда событие отключено. Несколько фильтров применяются с логикой И (CUT-OFF AND) в порядке их добавления к запросу. Только события, которые удовлетворяют всем фильтрам, помещаются в очередь событий.
Набор доступных фильтров зависит от запроса на событие, некоторые примеры фильтров:
- Фильтры потоков позволяют управлять потоком, для которого генерируются события.
- Фильтры классов позволяют управлять классом, в котором происходит событие.
- Фильтры экземпляров позволяют управлять экземпляром, в котором происходит событие.
- Фильтры счётчиков позволяют управлять количеством раз, когда событие сообщается.
Любой метод на EventRequest, который принимает EventRequest в качестве параметра, может выбросить VMDisconnectedException, если целевая виртуальная машина отключена, и VMDisconnectEvent было или доступно для чтения из EventQueue.
Любой метод на EventRequest, который принимает EventRequest в качестве параметра, может выбросить VMOutOfMemoryException, если у целевой виртуальной машины закончилась память.
- С:
- 1.3
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
SUSPEND_ALL |
Приостановить все потоки при возникновении события |
static final int |
SUSPEND_EVENT_THREAD |
Приостановить только поток, который сгенерировал событие, при возникновении события |
static final int |
SUSPEND_NONE |
Не приостанавливать потоки при возникновении события |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
addCountFilter |
Ограничить запрашиваемое событие, чтобы оно сообщалось не более одного раза после определённого количества появлений. |
void |
disable() |
То же, что и setEnabled(false). |
void |
enable() |
То же, что и setEnabled(true). |
Object |
getProperty |
Возвращает значение свойства со указанным ключом. |
boolean |
isEnabled() |
Определяет, является ли этот запрос на событие в настоящее время включённым. |
void |
putProperty |
Добавить произвольное свойство "ключ/значение" к этому запросу. |
void |
setEnabled |
Включает или отключает этот запрос на событие. |
void |
setSuspendPolicy |
Определяет потоки, которые необходимо приостановить при возникновении запрошенного события в целевой виртуальной машине. |
int |
suspendPolicy() |
Возвращает значение, которое описывает потоки, которые необходимо приостановить при возникновении запрошенного события в целевой виртуальной машине. |
Методы, объявленные в интерфейсе com.sun.jdi.Mirror
toString, virtualMachine
Подробное описание полей
SUSPEND_NONE
static final int SUSPEND_NONE
- См. также:
SUSPEND_EVENT_THREAD
static final int SUSPEND_EVENT_THREAD
- См. также:
SUSPEND_ALL
static final int SUSPEND_ALL
- См. также:
Подробное описание методов
isEnabled
boolean isEnabled()
- Возвращает:
-
true, если включено;falseв противном случае.
setEnabled
void setEnabled(boolean val)
EventRequestManager.breakpointRequests().- Параметры:
-
val-true, если заявка на событие должна быть включена;falseв противном случае. - Исключения:
-
InvalidRequestStateException- если запрос был удалён. -
IllegalThreadStateException- если это StepRequest,valявляетсяtrue, и поток, указанный в запросе, умер или ещё не запущен.
enable
void enable()
setEnabled(true).- Исключения:
-
InvalidRequestStateException- если запрос был удалён. -
IllegalThreadStateException- если это StepRequest и поток, указанный в запросе, умер или ещё не запущен.
disable
void disable()
setEnabled(false).- Исключения:
-
InvalidRequestStateException- если запрос был удалён.
addCountFilter
void addCountFilter(int count)
count - 1 раз, когда достигается этот фильтр. Чтобы запросить разовое событие, вызовите этот метод со значением счётчика 1. После того, как счётчик достигнет 0, применяются любые последующие фильтры в этом запросе. Если ни один из этих фильтров не приводит к подавлению события, событие сообщается. В противном случае событие не сообщается. В любом случае последующие события никогда не сообщаются для этого запроса.
- Параметры:
-
count- количество появлений перед генерацией события. - Исключения:
-
InvalidRequestStateException- если этот запрос в данный момент включён или был удалён. Фильтры могут быть добавлены только к отключённым запросам. -
IllegalArgumentException- еслиcountменьше единицы.
setSuspendPolicy
void setSuspendPolicy(int policy)
SUSPEND_ALL, чтобы приостановить все потоки в целевой виртуальной машине (по умолчанию). Используйте SUSPEND_EVENT_THREAD, чтобы приостановить только поток, который сгенерировал событие. Используйте SUSPEND_NONE, чтобы не приостанавливать потоки. Приостановки потоков через события имеют ту же функциональность, что и явно запрошенные приостановки. См. ThreadReference.suspend() и VirtualMachine.suspend() для получения подробной информации.
- Параметры:
-
policy- выбранная политика приостановки. - Исключения:
-
InvalidRequestStateException- если этот запрос в данный момент включён или был удалён. Политика приостановки может быть установлена только в отключённых запросах. -
IllegalArgumentException- если аргумент политики содержит недопустимое значение.
suspendPolicy
int suspendPolicy()
SUSPEND_ALL, SUSPEND_EVENT_THREAD или SUSPEND_NONE.- Возвращает:
- текущий режим приостановки для данного запроса
putProperty
void putProperty(Object key, Object value)
Методы get/putProperty предоставляют доступ к небольшой карте на экземпляр. Это не следует путать с Properties.
Если значение равно null, этот метод удалит свойство.
- См. также:
getProperty
Object getProperty(Object key)
putProperty(java.lang.Object, java.lang.Object), вернут значение, отличное от null.- Возвращает:
- значение этого свойства или null
- См. также:
© 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://download.java.net/java/early_access/jdk24/docs/api/jdk.jdi/com/sun/jdi/request/EventRequest.html