Spec-Zone.ru › OpenJDK 17

Интерфейс VirtualMachine

Все суперинтерфейсы:
Mirror
Все известные подинтерфейсы:
PathSearchingVirtualMachine
public interface VirtualMachine extends Mirror
Виртуальная машина, нацеленная на отладку. Точнее, mirror, представляющая составное состояние целевой ВМ. Все остальные зеркала связаны с экземпляром этого интерфейса. Доступ ко всем остальным зеркалам осуществляется напрямую или косвенно через экземпляр этого интерфейса. Доступ к глобальным свойствам ВМ и управлению выполнением ВМ поддерживается непосредственно этим интерфейсом.

Экземпляры этого интерфейса создаются экземплярами Connector. Например, AttachingConnector подключается к целевой ВМ и возвращает зеркало виртуальной машины. Как правило, соединитель создаёт VirtualMachine, вызывая метод VirtualMachineManager's VirtualMachineManager.createVirtualMachine(Connection) createVirtualMachine(Connection).

Обратите внимание, что целевая ВМ, запущенная запускающим соединителем, не гарантированно будет стабильной до получения VMStartEvent.

Любой метод в VirtualMachine, принимающий VirtualMachine в качестве параметра, может выбросить VMDisconnectedException, если целевая ВМ отключена, и VMDisconnectEvent была или доступна для чтения из EventQueue.

Любой метод в VirtualMachine, принимающий VirtualMachine в качестве параметра, может выбросить VMOutOfMemoryException, если у целевой ВМ закончилась память.

С:
1.3

Краткое описание полей

Модификатор и тип Поле Описание
static final int TRACE_ALL
Включено все трассирование.
static final int TRACE_EVENTS
Включено трассирование для внутренней обработки событий.
static final int TRACE_NONE
Отключено все трассирование.
static final int TRACE_OBJREFS
Включено трассирование для внутренней обработки ссылок на объекты.
static final int TRACE_RECEIVES
Включено трассирование для пакетов JDWP, полученных от целевой ВМ.
static final int TRACE_REFTYPES
Включено трассирование для внутренней обработки типов ссылок.
static final int TRACE_SENDS
Включено трассирование для пакетов JDWP, отправленных целевой ВМ.

Краткое описание методов

Modifier and Type Method Description
List<ReferenceType> allClasses()
Возвращает все загруженные типы в целевой виртуальной машине.
default List<ModuleReference> allModules()
Возвращает все модули.
List<ThreadReference> allThreads()
Возвращает список запущенных в данный момент потоков.
boolean canAddMethod()
Устарело.
Подсистема JDWP на базе JVM TI никогда не установит это свойство в значение true.
boolean canBeModified()
Определяет, является ли целевая виртуальная машина виртуальной машиной только для чтения.
boolean canForceEarlyReturn()
Определяет, поддерживает ли целевая виртуальная машина принудительное раннее возвращение из метода.
boolean canGetBytecodes()
Определяет, поддерживает ли целевая виртуальная машина получение байткода метода.
boolean canGetClassFileVersion()
Определяет, поддерживает ли целевая виртуальная машина чтение основных и второстепенных версий файла класса.
boolean canGetConstantPool()
Определяет, поддерживает ли целевая виртуальная машина получение информации о константном пуле класса.
boolean canGetCurrentContendedMonitor()
Определяет, поддерживает ли целевая виртуальная машина получение монитора, на котором поток в данный момент ожидает.
boolean canGetInstanceInfo()
Определяет, поддерживает ли целевая виртуальная машина доступ к экземплярам классов, количеству экземпляров и ссылающимся объектам.
boolean canGetMethodReturnValues()
Определяет, поддерживает ли целевая виртуальная машина включение значений возврата в MethodExitEvent.
default boolean canGetModuleInfo()
Определяет, поддерживает ли целевая виртуальная машина получение информации о модулях.
boolean canGetMonitorFrameInfo()
Определяет, поддерживает ли целевая виртуальная машина получение информации о том, какой фрейм приобрел монитор.
boolean canGetMonitorInfo()
Определяет, поддерживает ли целевая виртуальная машина получение информации о мониторе для объекта.
boolean canGetOwnedMonitorInfo()
Определяет, поддерживает ли целевая виртуальная машина получение мониторов, принадлежащих потоку.
boolean canGetSourceDebugExtension()
Определяет, поддерживает ли целевая виртуальная машина получение расширения отладки исходного кода.
boolean canGetSyntheticAttribute()
Определяет, поддерживает ли целевая виртуальная машина запрос синтетического атрибута метода или поля.
boolean canPopFrames()
Определяет, поддерживает ли целевая виртуальная машина извлечение фреймов из стека потока.
boolean canRedefineClasses()
Определяет, поддерживает ли целевая виртуальная машина переопределение классов на любом уровне.
boolean canRequestMonitorEvents()
Определяет, поддерживает ли целевая виртуальная машина создание MonitorContendedEnterRequest.
boolean canRequestVMDeathEvent()
Определяет, поддерживает ли целевая виртуальная машина создание VMDeathRequest.
boolean canUnrestrictedlyRedefineClasses()
Устарело.
Подсистема JDWP на базе JVM TI никогда не установит это свойство в значение true.
boolean canUseInstanceFilters()
Определяет, поддерживает ли целевая виртуальная машина фильтрацию событий по конкретному объекту экземпляра.
boolean canUseSourceNameFilters()
Определяет, поддерживает ли целевая виртуальная машина фильтрацию событий подготовки класса по имени источника.
boolean canWatchFieldAccess()
Определяет, поддерживает ли целевая виртуальная машина точки наблюдения для доступа к полю.
boolean canWatchFieldModification()
Определяет, поддерживает ли целевая виртуальная машина точки наблюдения для изменения поля.
List<ReferenceType> classesByName(String className)
Возвращает загруженные типы ссылок, соответствующие заданному имени.
String description()
Возвращает текстовую информацию о целевой виртуальной машине и поддержке отладчика, которая её отражает.
void dispose()
Деактивирует это зеркало виртуальной машины.
EventQueue eventQueue()
Возвращает очередь событий для этой виртуальной машины.
EventRequestManager eventRequestManager()
Возвращает менеджер запросов событий для этой виртуальной машины.
void exit(int exitCode)
Принуждает зеркальную VM к завершению с указанным кодом ошибки.
String getDefaultStratum()
Возвращает стандартный слой этой виртуальной машины.
long[] instanceCounts(List<? extends ReferenceType> refTypes)
Возвращает количество экземпляров каждого ReferenceType в списке 'refTypes'.
BooleanValue mirrorOf(boolean value)
Создает BooleanValue для данного значения.
ByteValue mirrorOf(byte value)
Создает ByteValue для данного значения.
CharValue mirrorOf(char value)
Создает CharValue для данного значения.
DoubleValue mirrorOf(double value)
Создает DoubleValue для данного значения.
FloatValue mirrorOf(float value)
Создает FloatValue для данного значения.
IntegerValue mirrorOf(int value)
Создает IntegerValue для данного значения.
LongValue mirrorOf(long value)
Создает LongValue для данного значения.
ShortValue mirrorOf(short value)
Создает ShortValue для данного значения.
StringReference mirrorOf(String value)
Создает строку в этой виртуальной машине.
VoidValue mirrorOfVoid()
Создает VoidValue.
String name()
Возвращает имя целевой виртуальной машины, как указано свойством java.vm.name.
Process process()
Возвращает объект Process для этой виртуальной машины, если она запущена с помощью LaunchingConnector
void redefineClasses(Map<? extends ReferenceType,byte[]> classToBytes)
Все предоставленные классы переопределяются в соответствии с предоставленными определениями.
void resume()
Продолжает выполнение приложения, работающего в этой виртуальной машине.
void setDebugTraceMode(int traceFlags)
Отслеживает действия, выполняемые реализацией com.sun.jdi.
void setDefaultStratum(String stratum)
Устанавливает стандартный слой этой виртуальной машины (см. Location для обсуждения слоёв).
void suspend()
Приостанавливает выполнение приложения, работающего в этой виртуальной машине.
List<ThreadGroupReference> topLevelThreadGroups()
Возвращает каждую группу потоков, у которой нет родительской группы.
String version()
Возвращает версию Java Runtime Environment в целевой виртуальной машине, как указано свойством java.version.

Методы, объявленные в интерфейсе com.sun.jdi.Mirror

toString, virtualMachine

Подробное описание полей

TRACE_NONE

static final int TRACE_NONE
Весь отслеживания отключен.
См. также:
  • Значения постоянных полей

TRACE_SENDS

static final int TRACE_SENDS
Отслеживание включено для пакетов JDWP, отправленных в целевую виртуальную машину.
См. также:
  • Значения постоянных полей

TRACE_RECEIVES

static final int TRACE_RECEIVES
Отслеживание включено для пакетов JDWP, полученных от целевой виртуальной машины.
См. также:
  • Значения постоянных полей

TRACE_EVENTS

static final int TRACE_EVENTS
Отслеживание включено для обработки внутренних событий.
См. также:
  • Значения постоянных полей

TRACE_REFTYPES

static final int TRACE_REFTYPES
Отслеживание включено для внутренней обработки ссылочных типов.
См. также:
  • Значения постоянных полей

TRACE_OBJREFS

static final int TRACE_OBJREFS
Отслеживание включено для внутренней обработки ссылок на объекты.
См. также:
  • Значения постоянных полей

TRACE_ALL

static final int TRACE_ALL
Весь отслеживания включен.
См. также:
  • Значения постоянных полей

Подробное описание методов

allModules

default List<ModuleReference> allModules()
Возвращает все модули. Для каждого модуля в целевой виртуальной машине ModuleReference будет помещен в возвращаемый список.

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

Требования к реализации:
Реализация по умолчанию выбрасывает UnsupportedOperationException.
Возвращает:
список объектов ModuleReference, каждый из которых отражает модуль в целевой виртуальной машине.
Выбрасывает:
UnsupportedOperationException - если целевая виртуальная машина не поддерживает эту операцию.
С:
9

classesByName

List<ReferenceType> classesByName(String className)
Возвращает загруженные типы ссылок, которые соответствуют заданному имени. Имя должно быть полностью квалифицированным (например, java.lang.String). Возвращаемый список будет содержать ReferenceType для каждого класса или интерфейса, найденного с заданным именем. Поиск ограничен только загруженными классами; попытка загрузить класс с заданным именем не предпринимается.

Возвращаемый список будет включать типы ссылок, загруженные по крайней мере до стадии подготовки, и типы (например, массивы), для которых подготовка не определена.

Параметры:
className - имя класса/интерфейса для поиска
Возвращает:
список объектов ReferenceType, каждый из которых отражает тип в целевой виртуальной машине с заданным именем.

allClasses

List<ReferenceType> allClasses()
Возвращает все загруженные типы в целевой виртуальной машине.

Возвращаемый список включает все типы ссылок, включая hidden classes or interfaces, загруженные по крайней мере до стадии подготовки, и типы (например, массивы), для которых подготовка не определена.

Возвращает:
список объектов ReferenceType, каждый из которых отражает загруженный тип в целевой виртуальной машине.
См. также:
  • JVM TI GetLoadedClasses относительно того, как можно инициировать создание класса и интерфейса

redefineClasses

void redefineClasses(Map<? extends ReferenceType,byte[]> classToBytes)
Все указанные классы переопределяются в соответствии с предоставленными определениями. Метод в переопределенном классе называется «эквивалентным» (старой версии метода), если
  • их байткоды одинаковы, за исключением индексов в пуле констант, и
  • ссылочные константы равны.
В противном случае новый метод называется «неэквивалентным». Если у переопределенного метода есть активные стековые кадры, эти активные кадры продолжают выполнять байткоды предыдущей версии метода. Если новая версия такого метода неэквивалентна, то метод из одного из этих активных кадров называется «устаревшим», и Method.isObsolete() вернет true, когда будет вызван на одном из этих методов. Если требуется сбросить такой кадр, используйте ThreadReference.popFrames(StackFrame) для удаления выполнения устаревшего метода из стека. Новые вызовы переопределенных методов всегда вызывают новые версии.

Эта функция не вызывает инициализацию, кроме той, которая произошла бы в соответствии с обычной семантикой JVM. Другими словами, переопределение класса не приводит к выполнению его инициализаторов. Значения существующих статических переменных останутся такими же, как и до вызова. Однако полностью неинициализированные (новые) статические переменные будут присвоены их значение по умолчанию.

Если переопределенный класс имеет экземпляры, все эти экземпляры будут иметь поля, определенные переопределенным классом по завершении вызова. Существующие поля сохранят свои предыдущие значения. Любые новые поля будут иметь значения по умолчанию; не выполняются инициализаторы экземпляров или конструкторы.

Потоки не должны приостанавливаться.

Эта функция не генерирует события.

Все точки останова в переопределенных классах удаляются.

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

Параметры:
classToBytes - карта из ReferenceType в массив байтов. Байты представляют новое определение класса и находятся в формате файла класса виртуальной машины Java.
Выбрасывает:
UnsupportedOperationException - если целевая виртуальная машина не поддерживает эту операцию.
  • Если canRedefineClasses() ложно, любой вызов этого метода выбросит это исключение.
  • Если canAddMethod() ложно, попытка добавить метод вызовет это исключение.
  • Если canUnrestrictedlyRedefineClasses() ложно, любая попытка выполнить изменения файла класса, описанные в JVM TI RedefineClasses, вызовет это исключение.
NoClassDefFoundError - если байты не соответствуют типу ссылки (имена не совпадают).
VerifyError - если «верификатор» обнаружит, что класс, хотя и правильно сформирован, содержит внутреннее несоответствие или проблему безопасности.
ClassFormatError - если байты не представляют собой допустимый класс.
ClassCircularityError - если обнаружена цикличность при инициализации класса.
UnsupportedClassVersionError - если номера основной и дополнительной версии в байтах не поддерживаются виртуальной машиной.
VMCannotBeModifiedException - если VirtualMachine является только для чтения - см. canBeModified().
С:
1.4
См. также:
  • Method.isObsolete()
  • ThreadReference.popFrames(com.sun.jdi.StackFrame)
  • canRedefineClasses()
  • canAddMethod()
  • canUnrestrictedlyRedefineClasses()

allThreads

List<ThreadReference> allThreads()
Возвращает список текущих потоков. Для каждого работающего потока в целевой виртуальной машине ThreadReference, отражающий его, помещается в список. Возвращаемый список содержит потоки, созданные через java.lang.Thread, все нативные потоки, подключенные к целевой виртуальной машине через JNI, и системные потоки, созданные целевой виртуальной машиной. Объекты потоков, которые еще не были запущены (см. Thread.start()) и объекты потоков, которые завершили свою работу, не включены в возвращаемый список.
Возвращает:
список объектов ThreadReference, по одному для каждого работающего потока в отраженной виртуальной машине.

приостановить

void suspend()
Приостанавливает выполнение приложения, работающего в этой виртуальной машине. Все текущие потоки будут приостановлены.

В отличие от Thread.suspend(), приостановки как виртуальной машины, так и отдельных потоков считаются. Перед тем, как поток снова сможет запуститься, его необходимо возобновить (через resume() или ThreadReference.resume()) столько же раз, сколько он был приостановлен.

Исключения:
VMCannotBeModifiedException - если VirtualMachine является только для чтения - см. canBeModified().

возобновить

void resume()
Продолжает выполнение приложения, работающего в этой виртуальной машине. Все потоки возобновляются, как описано в ThreadReference.resume().
Исключения:
VMCannotBeModifiedException - если VirtualMachine является только для чтения - см. canBeModified().
См. также:
  • suspend()

главные группы потоков

List<ThreadGroupReference> topLevelThreadGroups()
Возвращает каждую группу потоков, у которой нет родителя. Для каждой главной группы потоков ThreadGroupReference помещается в возвращаемый список.

Эта команда может быть использована в качестве первого шага для построения дерева (или деревьев) существующих групп потоков.

Возвращаемое значение:
список объектов ThreadGroupReference, по одному для каждой главной группы потоков.

очередь событий

EventQueue eventQueue()
Возвращает очередь событий для этой виртуальной машины. Виртуальная машина имеет только один объект EventQueue, этот метод каждый раз будет возвращать тот же экземпляр.
Возвращаемое значение:
объект EventQueue для этой виртуальной машины.
Исключения:
VMCannotBeModifiedException - если VirtualMachine является только для чтения - см. canBeModified().

менеджер запросов событий

EventRequestManager eventRequestManager()
Возвращает менеджер запросов событий для этой виртуальной машины. EventRequestManager управляет настраиваемыми событиями пользователя, такими как точки останова. У виртуальной машины есть только один объект EventRequestManager, этот метод каждый раз будет возвращать тот же экземпляр.
Возвращаемое значение:
объект EventRequestManager для этой виртуальной машины.
Исключения:
VMCannotBeModifiedException - если VirtualMachine является только для чтения - см. canBeModified().

mirrorOf

BooleanValue mirrorOf(boolean value)
Создаёт BooleanValue для данного значения. Это значение может использоваться для установки и сравнения с значением, полученным из переменной или поля в этой виртуальной машине.
Параметры:
value - булево значение для создания значения
Возвращаемое значение:
BooleanValue для данного булевого значения.

mirrorOf

ByteValue mirrorOf(byte value)
Создаёт ByteValue для данного значения. Это значение может использоваться для установки и сравнения с значением, полученным из переменной или поля в этой виртуальной машине.
Параметры:
value - байтовое значение для создания значения
Возвращаемое значение:
ByteValue для данного байта.

mirrorOf

CharValue mirrorOf(char value)
Создаёт CharValue для данного значения. Это значение может использоваться для установки и сравнения с значением, полученным из переменной или поля в этой виртуальной машине.
Параметры:
value - символьное значение для создания значения
Возвращаемое значение:
CharValue для данного символа.

mirrorOf

ShortValue mirrorOf(short value)
Создаёт ShortValue для данного значения. Это значение может использоваться для установки и сравнения с значением, полученным из переменной или поля в этой виртуальной машине.
Параметры:
value - короткое значение для создания значения
Возвращаемое значение:
ShortValue для данного короткого значения.

mirrorOf

IntegerValue mirrorOf(int value)
Создаёт IntegerValue для данного значения. Это значение может использоваться для установки и сравнения с значением, полученным из переменной или поля в этой виртуальной машине.
Параметры:
value - целое значение для создания значения
Возвращаемое значение:
IntegerValue для данного целого значения.

mirrorOf

LongValue mirrorOf(long value)
Создаёт LongValue для данного значения. Это значение может использоваться для установки и сравнения с значением, полученным из переменной или поля в этой виртуальной машине.
Параметры:
value - длинное значение для создания значения
Возвращаемое значение:
LongValue для данного длинного значения.

mirrorOf

FloatValue mirrorOf(float value)
Создаёт FloatValue для данного значения. Это значение может использоваться для установки и сравнения с значением, полученным из переменной или поля в этой виртуальной машине.
Параметры:
value - значение с плавающей точкой для создания значения
Возвращаемое значение:
FloatValue для данного значения с плавающей точкой.

mirrorOf

DoubleValue mirrorOf(double value)
Создаёт DoubleValue для данного значения. Это значение может использоваться для установки и сравнения с значением, полученным из переменной или поля в этой виртуальной машине.
Параметры:
value - значение с двойной точностью для создания значения
Возвращаемое значение:
DoubleValue для данного значения с двойной точностью.

mirrorOf

StringReference mirrorOf(String value)
Создаёт строку в этой виртуальной машине. Созданная строка может использоваться для установки и сравнения со строковым значением, полученным из переменной или поля в этой виртуальной машине.
Параметры:
value - строка для создания
Возвращаемое значение:
StringReference, отражающий новосозданную строку в целевой ВМ.
Исключения:
VMCannotBeModifiedException - если VirtualMachine является только для чтения - см. canBeModified().

mirrorOfVoid

VoidValue mirrorOfVoid()
Создаёт VoidValue. Это значение может быть передано в ThreadReference.forceEarlyReturn(com.sun.jdi.Value), когда метод void должен быть завершен.
Возвращаемое значение:
VoidValue.

процесс

Process process()
Возвращает объект Process для этой виртуальной машины, если она запущена с помощью LaunchingConnector
Возвращаемое значение:
объект Process для этой виртуальной машины или null, если она не запущена с помощью LaunchingConnector.
Исключения:
VMCannotBeModifiedException - если VirtualMachine является только для чтения - см. canBeModified().

dispose

void dispose()
Деактивирует этот виртуальный машинный зеркало. Канал связи с целевой ВМ закрывается, и целевая ВМ готовится принять другой последующий соединение от этого отладчика или другого отладчика, включая следующие задачи:
  • Все запросы событий отменяются.
  • Все потоки, приостановленные с помощью suspend() или ThreadReference.suspend(), возобновляются столько раз, сколько необходимо для их выполнения.
  • Сбор мусора повторно разрешен во всех случаях, где он был отключен через ObjectReference.disableCollection().
Любые текущие вызовы методов, выполняемые в целевой ВМ, продолжаются после разъединения. По завершении любого такого вызова метода вызывающий поток продолжает выполнятся с места, где он был первоначально остановлен.

Ресурсы, происходящие из этой VirtualMachine (ObjectReferences, ReferenceTypes и т.д.), станут недопустимыми.

exit

void exit(int exitCode)
Принуждает отражённую ВМ к завершению с заданным кодом ошибки. Все ресурсы, связанные с этой VirtualMachine, освобождаются. Если отражённая ВМ удалённая, канал связи с ней будет закрыт. Ресурсы, происходящие из этой VirtualMachine (ObjectReferences, ReferenceTypes и т.д.), станут недопустимыми.

Потоки, выполняемые в отражённой ВМ, резко завершаются. Исключение смерти потока не выбрасывается, и блоки finally не выполняются.

Parameters:
exitCode - код завершения для целевой ВМ. На некоторых платформах код завершения может быть усечён, например, до младших 8 битов.
Throws:
VMCannotBeModifiedException - если VirtualMachine является только для чтения - см. canBeModified().

canWatchFieldModification

boolean canWatchFieldModification()
Определяет, поддерживает ли целевая ВМ точки останова для изменения полей.
Returns:
true если функция поддерживается, false в противном случае.

canWatchFieldAccess

boolean canWatchFieldAccess()
Определяет, поддерживает ли целевая ВМ точки останова для доступа к полям.
Returns:
true если функция поддерживается, false в противном случае.

canGetBytecodes

boolean canGetBytecodes()
Определяет, поддерживает ли целевая ВМ получение байткодов метода.
Returns:
true если функция поддерживается, false в противном случае.

canGetSyntheticAttribute

boolean canGetSyntheticAttribute()
Определяет, поддерживает ли целевая ВМ запрос синтетического атрибута метода или поля.
Returns:
true если функция поддерживается, false в противном случае.

canGetOwnedMonitorInfo

boolean canGetOwnedMonitorInfo()
Определяет, поддерживает ли целевая ВМ получение мониторов, принадлежащих потоку.
Returns:
true если функция поддерживается, false в противном случае.

canGetCurrentContendedMonitor

boolean canGetCurrentContendedMonitor()
Определяет, поддерживает ли целевая ВМ получение монитора, в ожидании которого находится поток в данный момент.
Returns:
true если функция поддерживается, false в противном случае.

canGetMonitorInfo

boolean canGetMonitorInfo()
Определяет, поддерживает ли целевая ВМ получение информации о мониторе для объекта.
Returns:
true если функция поддерживается, false в противном случае.

canUseInstanceFilters

boolean canUseInstanceFilters()
Определяет, поддерживает ли целевая ВМ фильтрацию событий по конкретному объекту экземпляра. Например, см. BreakpointRequest.addInstanceFilter(com.sun.jdi.ObjectReference).
Returns:
true если функция поддерживается, false в противном случае.

canRedefineClasses

boolean canRedefineClasses()
Определяет, поддерживает ли целевая ВМ какой-либо уровень переопределения классов.
Returns:
true если функция поддерживается, false в противном случае.
Since:
1.4
See Also:
  • redefineClasses(java.util.Map<? extends com.sun.jdi.ReferenceType, byte[]>)

canAddMethod

@Deprecated(since="15") boolean canAddMethod()
Deprecated.
JVM TI-основанный JDWP бэкэнд никогда не будет устанавливать эту возможность в true.
Определяет, поддерживает ли целевая ВМ добавление методов при переопределении классов.
Returns:
true если функция поддерживается, false в противном случае.
Since:
1.4
See Also:
  • redefineClasses(java.util.Map<? extends com.sun.jdi.ReferenceType, byte[]>)

canUnrestrictedlyRedefineClasses

@Deprecated(since="15") boolean canUnrestrictedlyRedefineClasses()
Deprecated.
JVM TI-основанный JDWP бэкэнд никогда не будет устанавливать эту возможность в true.
Определяет, поддерживает ли целевая ВМ изменения при переопределении классов, которые в противном случае ограничены redefineClasses(java.util.Map<? extends com.sun.jdi.ReferenceType, byte[]>).
Returns:
true если функция поддерживается, false в противном случае.
Since:
1.4
See Also:
  • redefineClasses(java.util.Map<? extends com.sun.jdi.ReferenceType, byte[]>)

canPopFrames

boolean canPopFrames()
Определяет, поддерживает ли целевая ВМ извлечение кадров стека потока.
Returns:
true если функция поддерживается, false в противном случае.
Since:
1.4
See Also:
  • ThreadReference.popFrames(com.sun.jdi.StackFrame)

canGetSourceDebugExtension

boolean canGetSourceDebugExtension()
Определяет, поддерживает ли целевая ВМ получение расширения отладки исходного кода.
Returns:
true если функция поддерживается, false в противном случае.
Since:
1.4
See Also:
  • ReferenceType.sourceDebugExtension()

canRequestVMDeathEvent

boolean canRequestVMDeathEvent()
Определяет, поддерживает ли целевая ВМ создание VMDeathRequest.
Returns:
true если функция поддерживается, false в противном случае.
Since:
1.4
See Also:
  • EventRequestManager.createVMDeathRequest()

canGetMethodReturnValues

boolean canGetMethodReturnValues()
Определяет, поддерживает ли целевая ВМ включение возвращаемых значений в MethodExitEvent.
Returns:
true если функция поддерживается, false в противном случае.
Since:
1.6
See Also:
  • EventRequestManager.createMethodExitRequest()

canGetInstanceInfo

boolean canGetInstanceInfo()
Определяет, поддерживает ли целевая ВМ доступ к экземплярам классов, количеству экземпляров и ссылающимся объектам.
Returns:
true если функция поддерживается, false в противном случае.
Since:
1.6
See Also:
  • instanceCounts(java.util.List<? extends com.sun.jdi.ReferenceType>)
  • ReferenceType.instances(long)
  • ObjectReference.referringObjects(long)

canUseSourceNameFilters

boolean canUseSourceNameFilters()
Определяет, поддерживает ли целевая ВМ фильтрацию событий подготовки классов по имени исходного кода. см. ClassPrepareRequest.addSourceNameFilter(java.lang.String).
Returns:
true если функция поддерживается, false в противном случае.
Since:
1.6

canForceEarlyReturn

boolean canForceEarlyReturn()
Определяет, поддерживает ли целевая ВМ принудительное раннее возвращение из метода.
Returns:
true если функция поддерживается, false в противном случае.
Since:
1.6
See Also:
  • ThreadReference.forceEarlyReturn(Value)

canBeModified

boolean canBeModified()
Определяет, является ли целевая виртуальная машина (ВМ) ВМ только для чтения. Если метод, который бы изменил состояние ВМ, вызывается на ВМ только для чтения, то выбрасывается исключение VMCannotBeModifiedException.
Возвращает:
true если функция поддерживается, false в противном случае.
С:
1.5

canRequestMonitorEvents

boolean canRequestMonitorEvents()
Определяет, поддерживает ли целевая ВМ создание запросов MonitorContendedEnterRequest. MonitorContendedEnteredRequest. MonitorWaitRequest. MonitorWaitedRequest.
Возвращает:
true если функция поддерживается, false в противном случае.
С:
1.6
См. также:
  • EventRequestManager.createMonitorContendedEnterRequest()
  • EventRequestManager.createMonitorContendedEnteredRequest()
  • EventRequestManager.createMonitorWaitRequest()
  • EventRequestManager.createMonitorWaitedRequest()

canGetMonitorFrameInfo

boolean canGetMonitorFrameInfo()
Определяет, поддерживает ли целевая ВМ получение информации о том, какой фрейм приобрел монитор.
Возвращает:
true если функция поддерживается, false в противном случае.
С:
1.6
См. также:
  • ThreadReference.ownedMonitorsAndFrames()

canGetClassFileVersion

boolean canGetClassFileVersion()
Определяет, поддерживает ли целевая ВМ чтение основных и второстепенных версий файла класса.
Возвращает:
true если функция поддерживается, false в противном случае.
С:
1.6
См. также:
  • ReferenceType.majorVersion()
  • ReferenceType.minorVersion()

canGetConstantPool

boolean canGetConstantPool()
Определяет, поддерживает ли целевая ВМ получение информации о константном пуле класса.
Возвращает:
true если функция поддерживается, false в противном случае.
С:
1.6
См. также:
  • ReferenceType.constantPoolCount()
  • ReferenceType.constantPool()

canGetModuleInfo

default boolean canGetModuleInfo()
Определяет, поддерживает ли целевая ВМ получение информации о модулях.
Требования к реализации:
По умолчанию возвращает false.
Возвращает:
true если функция поддерживается, false в противном случае
С:
9
См. также:
  • allModules()
  • ReferenceType.module()
  • ModuleReference

setDefaultStratum

void setDefaultStratum(String stratum)
Устанавливает стандартный слой (см. Location для обсуждения слоев). Перезаписывает стандартный слой по умолчанию для каждого класса, заданный в файле класса.

Воздействует на запросы расположения (например, Location.sourceName()) и границы строк, используемые при пошаговом выполнении.

Параметры:
stratum - слой по умолчанию для ВМ, или null для использования стандартных значений по умолчанию для каждого класса.
Исключения:
UnsupportedOperationException - если целевая виртуальная машина не поддерживает эту операцию.
С:
1.4

getDefaultStratum

String getDefaultStratum()
Возвращает стандартный слой для этой ВМ.
Возвращает:
null (что означает, что должен использоваться стандартный слой по умолчанию для каждого класса - ReferenceType.defaultStratum() - если стандартный слой не был установлен с помощью setDefaultStratum(String).
С:
1.4
См. также:
  • setDefaultStratum(String)
  • ReferenceType.defaultStratum()

instanceCounts

long[] instanceCounts(List<? extends ReferenceType> refTypes)
Возвращает количество экземпляров каждого ReferenceType в списке 'refTypes'. Учитываются только экземпляры, доступные для целей сборки мусора.

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

Параметры:
refTypes - список объектов ReferenceType, для которых необходимо получить подсчет.
Возвращает:
массив long , содержащий по одному элементу для каждого элемента в списке 'refTypes'. Элемент i массива содержит количество экземпляров в целевой ВМ типа ReferenceType в позиции i в списке 'refTypes'. Если список 'refTypes' пуст, возвращается массив нулевой длины. Если ReferenceType в refTypes был собран мусором, для его количества экземпляров возвращается ноль.
Исключения:
UnsupportedOperationException - если целевая виртуальная машина не поддерживает эту операцию - см. canGetInstanceInfo()
NullPointerException - если список 'refTypes' равен null.
С:
1.6
См. также:
  • ReferenceType.instances(long)
  • ObjectReference.referringObjects(long)

description

String description()
Возвращает текстовую информацию о целевой ВМ и поддерживающей её отладке. Нет гарантии на определённый формат этой информации. Как правило, эта строка содержит информацию о версии целевой ВМ и интерфейсов отладчика. Более точную информацию о версиях ВМ и JDI можно получить с помощью version(), VirtualMachineManager.majorInterfaceVersion() и VirtualMachineManager.minorInterfaceVersion()
Возвращает:
описание.

version

String version()
Возвращает версию Java Runtime Environment в целевой ВМ, как сообщается свойством java.version. Для получения версии интерфейса JDI используйте VirtualMachineManager.majorInterfaceVersion() и VirtualMachineManager.minorInterfaceVersion()
Возвращает:
версию целевой ВМ.

name

String name()
Возвращает имя целевой ВМ, как сообщается свойством java.vm.name.
Возвращает:
имя целевой ВМ.

setDebugTraceMode

void setDebugTraceMode(int traceFlags)
Отслеживает действия, выполняемые реализацией com.sun.jdi. Вся отладочная информация выводится в System.err. Указанные флаги отслеживания используются для ограничения вывода только необходимой информацией. Указанные флаги действуют, и соответствующее отслеживание будет продолжаться до следующего вызова этого метода.

Вывод зависит от реализации, и режим отслеживания может быть проигнорирован.

Параметры:
traceFlags - определяет, какие виды отслеживания включить.

© 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/VirtualMachine.html

Spec-Zone.ru

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