Spec-Zone.ru › OpenJDK 24

Интерфейс VirtualMachine

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

Экземпляры этого интерфейса создаются экземплярами Connector. Например, AttachingConnector подключается к целевой ВМ и возвращает зеркало виртуальной машины. Как правило, Connector создаёт 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()
Определяет, поддерживает ли целевая виртуальная машина включение возвращаемых значений в события 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()
Устарело.
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 для каждого активного платформенного потока в целевой виртуальной машине. Это включает платформенные потоки, созданные с помощью java.lang.Thread API, и все нативные потоки, подключенные к целевой виртуальной машине с помощью 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 - boolean, для которого нужно создать значение
Возвращает:
объект BooleanValue для данного boolean.

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), когда необходимо завершить выполнение метода без возвращаемого значения.
Returns:
the VoidValue.

process

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

dispose

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

Ресурсы, созданные в этой виртуальной машине (ObjectReferences, ReferenceTypes и т. д.), станут недействительными.

exit

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

Потоки, работающие в зеркальной виртуальной машине, резко завершаются. Исключение смерти потока не генерируется, и блоки finally не выполняются.

Parameters:
exitCode - код завершения для целевой виртуальной машины. На некоторых платформах код завершения может быть усечен, например, до младших 8 бит.
Throws:
VMCannotBeModifiedException - если виртуальная машина доступна только для чтения - см. 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.
A JVM TI based JDWP back-end will never set this capability to 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.
A JVM TI based JDWP back-end will never set this capability to 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()
Определяет, поддерживает ли целевая виртуальная машина доступ к экземплярам классов, количеству экземпляров и ссылающимся объектам.
Возвращает:
true, если функция поддерживается, false в противном случае.
Since:
1.6
См. также:
  • instanceCounts(java.util.List<? extends com.sun.jdi.ReferenceType>)
  • ReferenceType.instances(long)
  • ObjectReference.referringObjects(long)

canUseSourceNameFilters

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

canForceEarlyReturn

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

canBeModified

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

canRequestMonitorEvents

boolean canRequestMonitorEvents()
Определяет, поддерживает ли целевая виртуальная машина создание MonitorContendedEnterRequests. MonitorContendedEnteredRequests. MonitorWaitRequests. MonitorWaitedRequests.
Возвращает:
true, если функция поддерживается, false в противном случае.
Since:
1.6
См. также:
  • EventRequestManager.createMonitorContendedEnterRequest()
  • EventRequestManager.createMonitorContendedEnteredRequest()
  • EventRequestManager.createMonitorWaitRequest()
  • EventRequestManager.createMonitorWaitedRequest()

canGetMonitorFrameInfo

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

canGetClassFileVersion

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

canGetConstantPool

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

canGetModuleInfo

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

setDefaultStratum

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

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

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

getDefaultStratum

String getDefaultStratum()
Возвращает значение по умолчанию для слоя этой виртуальной машины.
Возвращает:
null (что означает, что следует использовать значение по умолчанию для каждого класса - ReferenceType.defaultStratum() - если значение по умолчанию для слоя не было установлено с помощью setDefaultStratum(String).
Since:
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.
Since:
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, 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/VirtualMachine.html

Spec-Zone.ru

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