Интерфейс 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). Фильтры добавляются к событию по одному, только когда событие отключено. Несколько фильтров применяются с логикой И, в порядке их добавления в запрос. Только события, удовлетворяющие всем фильтрам, помещаются в очередь событий.
Набор доступных фильтров зависит от запроса события, некоторые примеры фильтров:
- Фильтры потоков позволяют контролировать поток, для которого генерируются события.
- Фильтры классов позволяют контролировать класс, в котором происходит событие.
- Фильтры экземпляров позволяют контролировать экземпляр, в котором происходит событие.
- Фильтры подсчета позволяют контролировать количество раз, когда событие отчитывается.
Любой метод на 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
- См. также:
© 1993, 2023, 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/21/docs/api/jdk.jdi/com/sun/jdi/request/EventRequest.html