Spec-Zone.ru › OpenJDK 21

Интерфейс VirtualMachine

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

Экземпляры этого интерфейса создаются экземплярами Connector. Например, AttachingConnector подключается к целевой ВМ и возвращает зеркало виртуальной машины. Коннектор обычно создаёт VirtualMachine, вызывая метод 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()
Устарело.
JVM TI-базированный JDWP бэкенд никогда не установит это свойство в true.
boolean canBeModified()
Определяет, является ли целевая виртуальная машина виртуальной машиной только для чтения.
boolean canForceEarlyReturn()
Определяет, поддерживает ли целевая виртуальная машина принудительное раннее завершение метода.
boolean canGetBytecodes()
Определяет, поддерживает ли целевая виртуальная машина получение байткода метода.
boolean canGetClassFileVersion()
Определяет, поддерживает ли целевая виртуальная машина чтение основных и второстепенных версий файла класса.
boolean canGetConstantPool()
Определяет, поддерживает ли целевая виртуальная машина получение информации о константном пуле класса.
boolean canGetCurrentContendedMonitor()
Определяет, поддерживает ли целевая виртуальная машина получение монитора, на котором в данный момент ожидает поток.
boolean canGetInstanceInfo()
Определяет, поддерживает ли целевая виртуальная машина доступ к экземплярам классов, количеству экземпляров и ссылочным объектам.
boolean canGetMethodReturnValues()
Определяет, поддерживает ли целевая виртуальная машина включение возвращаемых значений в MethodExitEvents.
default boolean canGetModuleInfo()
Определяет, поддерживает ли целевая виртуальная машина получение информации о модулях.
boolean canGetMonitorFrameInfo()
Определяет, поддерживает ли целевая виртуальная машина получение кадра, который захватил монитор.
boolean canGetMonitorInfo()
Определяет, поддерживает ли целевая виртуальная машина получение информации о мониторе для объекта.
boolean canGetOwnedMonitorInfo()
Определяет, поддерживает ли целевая виртуальная машина получение мониторов, принадлежащих потоку.
boolean canGetSourceDebugExtension()
Определяет, поддерживает ли целевая виртуальная машина получение расширения отладки исходного кода.
boolean canGetSyntheticAttribute()
Определяет, поддерживает ли целевая виртуальная машина запрос синтетического атрибута метода или поля.
boolean canPopFrames()
Определяет, поддерживает ли целевая виртуальная машина удаление кадров из стека потока.
boolean canRedefineClasses()
Определяет, поддерживает ли целевая виртуальная машина любой уровень переопределения классов.
boolean canRequestMonitorEvents()
Определяет, поддерживает ли целевая виртуальная машина создание MonitorContendedEnterRequests.
boolean canRequestVMDeathEvent()
Определяет, поддерживает ли целевая виртуальная машина создание VMDeathRequests.
boolean canUnrestrictedlyRedefineClasses()
Устарело.
JVM TI-базированный JDWP бэкенд никогда не установит это свойство в 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)
Принуждает зеркальную виртуальную машину к завершению с заданным кодом ошибки.
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 для каждого активного платформенного потока в целевой виртуальной машине. Это включает платформенные потоки, созданные с помощью API java.lang.Thread и все собственные потоки, присоединенные к целевой виртуальной машине с помощью кода JNI.

Зависит от реализации, содержит ли список элементы для активных виртуальных потоков в целевой виртуальной машине. Целевая виртуальная машина может не возвращать никаких ссылок на виртуальные потоки, или она может быть настроена на возврат ссылки на некоторые или все виртуальные потоки. Инструменты, которые хотят отслеживать все виртуальные потоки, могут включить ThreadStartRequest и ThreadDeathRequest, чтобы получать уведомления о запуске и завершении виртуальных потоков.

Возвращает:
список объектов ThreadReference для потоков в целевой виртуальной машине

suspend

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

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

Исключения:
VMCannotBeModifiedException - если VirtualMachine доступен только для чтения
См. также:
  • canBeModified()

resume

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

topLevelThreadGroups

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

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

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

eventQueue

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

eventRequestManager

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()
Возвращает объект 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 и т. д.), станут недопустимыми.

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

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

canWatchFieldModification

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

canWatchFieldAccess

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

canGetBytecodes

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

canGetSyntheticAttribute

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

canGetOwnedMonitorInfo

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

canGetCurrentContendedMonitor

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

canGetMonitorInfo

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

canUseInstanceFilters

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

canRedefineClasses

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

canAddMethod

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

canUnrestrictedlyRedefineClasses

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

canPopFrames

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

canGetSourceDebugExtension

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

canRequestVMDeathEvent

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

canGetMethodReturnValues

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

canGetInstanceInfo

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

canUseSourceNameFilters

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

canForceEarlyReturn

boolean canForceEarlyReturn()
Определяет, поддерживает ли целевая виртуальная машина принудительное раннее возвращение из метода.
Возвращает:
true если функция поддерживается, false в противном случае.
С:
1.6
См. также:
  • 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, 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/VirtualMachine.html

Spec-Zone.ru

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