Spec-Zone .ru
спецификации, руководства, описания, API
|
public interface VirtualMachine extends Mirror
mirror
представление составного состояния целевого VM. Все другие зеркала связываются с экземпляром этого интерфейса. Доступ ко всем другим зеркалам достигается прямо или косвенно через экземпляр этого интерфейса. Доступ к глобальным свойствам VM и управлению выполнения VM поддерживается непосредственно этим интерфейсом. Экземпляры этого интерфейса создаются экземплярами Connector
. Например, AttachingConnector
присоединяет к целевому VM и возвращает его зеркало виртуальной машины. Соединитель будет обычно создавать VirtualMachine, вызывая VirtualMachineManager VirtualMachineManager.createVirtualMachine(Connection)
createVirtualMachine (Соединение) метод.
Отметьте, что целевой VM, запущенный запускающимся соединителем, как гарантируют, не будет устойчив до окончания VMStartEvent
был получен.
Любой метод на VirtualMachine
который берет VirtualMachine
поскольку параметр может бросить VMDisconnectedException
если целевой VM разъединяется и VMDisconnectEvent
был или доступен, чтобы быть считанным из EventQueue
.
Любой метод на VirtualMachine
который берет VirtualMachine
поскольку параметр может бросить VMOutOfMemoryException
если целевой VM исчерпал память.
Модификатор и Тип | Поле и Описание |
---|---|
static int |
TRACE_ALL
Вся трассировка включается.
|
static int |
TRACE_EVENTS
Трассировка включала для обработки внутреннего события.
|
static int |
TRACE_NONE
Вся трассировка отключается.
|
static int |
TRACE_OBJREFS
Трассировка включала для внутреннего управления ссылками на объект.
|
static int |
TRACE_RECEIVES
Трассировка включала для пакетов JDWP, полученных от целевого VM.
|
static int |
TRACE_REFTYPES
Трассировка включала для внутреннего managment ссылочных типов.
|
static int |
TRACE_SENDS
Трассировка включала для пакетов JDWP, отправленных целевому VM.
|
Модификатор и Тип | Метод и Описание |
---|---|
List<ReferenceType> |
allClasses()
Возвраты все загруженные типы.
|
List<ThreadReference> |
allThreads()
Возвращает список в настоящий момент рабочих потоков.
|
boolean |
canAddMethod()
Определяет, поддерживает ли целевой VM добавление методов, выполняя переопределение class.
|
boolean |
canBeModified()
Определяет, является ли целевой VM VM только для чтения.
|
boolean |
canForceEarlyReturn()
Определяет, поддерживает ли целевой VM принуждение метода, чтобы возвратиться рано.
|
boolean |
canGetBytecodes()
Определяет, поддерживает ли целевой VM извлечение байт-кодов метода.
|
boolean |
canGetClassFileVersion()
Определяет, поддерживает ли целевой VM чтение файл class основные и вспомогательные версии.
|
boolean |
canGetConstantPool()
Определяет, поддерживает ли целевой VM получающую постоянную информацию пула class.
|
boolean |
canGetCurrentContendedMonitor()
Определяет, поддерживает ли целевой VM извлечение монитора, которого в настоящий момент ожидает поток.
|
boolean |
canGetInstanceInfo()
Определяет, поддерживает ли целевой VM доступ экземпляров class, количеств экземпляра, и обращения объектов.
|
boolean |
canGetMethodReturnValues()
Определяет, поддерживает ли целевой VM включение возвращаемых значений в
MethodExitEvent s. |
boolean |
canGetMonitorFrameInfo()
Определяет, поддерживает ли целевой VM получение, какой фрейм получил монитор.
|
boolean |
canGetMonitorInfo()
Определяет, поддерживает ли целевой VM извлечение информации о мониторе для объекта.
|
boolean |
canGetOwnedMonitorInfo()
Определяет, поддерживает ли целевой VM извлечение мониторов, принадлежавших потоку.
|
boolean |
canGetSourceDebugExtension()
Определяет, поддерживает ли целевой VM получение исходного расширения отладки.
|
boolean |
canGetSyntheticAttribute()
Определяет, поддерживает ли целевой VM запрос синтетического атрибута метода или поля.
|
boolean |
canPopFrames()
Определяет, поддерживает ли целевой VM появляющиеся фреймы стека потоков.
|
boolean |
canRedefineClasses()
Определяет, поддерживает ли целевой VM какой-либо уровень переопределения class.
|
boolean |
canRequestMonitorEvents()
Определяет, поддерживает ли целевой VM создание
MonitorContendedEnterRequest s. |
boolean |
canRequestVMDeathEvent()
Определяет, поддерживает ли целевой VM создание
VMDeathRequest s. |
boolean |
canUnrestrictedlyRedefineClasses()
Определяет, поддерживает ли целевой VM неограниченные изменения, выполняя переопределение class.
|
boolean |
canUseInstanceFilters()
Определяет, поддерживает ли целевой VM события фильтрации определенным объектом экземпляра.
|
boolean |
canUseSourceNameFilters()
Определяет, поддерживает ли целевой VM фильтрацию class, готовят события исходным именем.
|
boolean |
canWatchFieldAccess()
Определяет, поддерживает ли целевой VM контрольные точки для доступа к полю.
|
boolean |
canWatchFieldModification()
Определяет, поддерживает ли целевой VM контрольные точки для полевой модификации.
|
List<ReferenceType> |
classesByName(String className)
Возвращает загруженные ссылочные типы, которые соответствуют имя.
|
Строка |
description()
Информация о тексте возвратов о целевом VM и поддержке для отладочных средств, которая зеркально отражает это.
|
void |
dispose()
Лишает законной силы это зеркало виртуальной машины.
|
EventQueue |
eventQueue()
Возвращает очередь событий для этой виртуальной машины.
|
EventRequestManager |
eventRequestManager()
Возвращается событие запрашивают менеджера по этой виртуальной машине.
|
void |
exit(int exitCode)
Заставляет зеркально отраженный VM завершаться с данным кодом ошибки.
|
Строка |
getDefaultStratum()
Возвратите слой значения по умолчанию этого VM.
|
long[] |
instanceCounts(List<? extends ReferenceType> refTypes)
Возвращает число экземпляров каждого ReferenceType в списке 'refTypes'.
|
BooleanValue |
mirrorOf(boolean value)
Создает a
BooleanValue для данного значения. |
ByteValue |
mirrorOf(byte value)
Создает a
ByteValue для данного значения. |
CharValue |
mirrorOf(char value)
Создает a
CharValue для данного значения. |
DoubleValue |
mirrorOf(double value)
Создает a
DoubleValue для данного значения. |
FloatValue |
mirrorOf(float value)
Создает a
FloatValue для данного значения. |
IntegerValue |
mirrorOf(int value)
Создает
IntegerValue для данного значения. |
LongValue |
mirrorOf(long value)
Создает a
LongValue для данного значения. |
ShortValue |
mirrorOf(short value)
Создает a
ShortValue для данного значения. |
StringReference |
mirrorOf(String value)
Создает строку в этой виртуальной машине.
|
VoidValue |
mirrorOfVoid()
Создает a
VoidValue . |
Строка |
name()
Возвращает имя целевого VM как сообщающийся свойством
java.vm.name . |
Процесс |
process()
Возвраты
Process объект для этой виртуальной машины если запущено a LaunchingConnector |
void |
redefineClasses(Map<? extends ReferenceType,byte[]> classToBytes)
Все данные классы пересматриваются согласно предоставленным определениям.
|
void |
resume()
Продолжает выполнение приложения, работающего в этой виртуальной машине.
|
void |
setDebugTraceMode(int traceFlags)
Прослеживает действия, выполняемые com.sun.jdi реализацией.
|
void |
setDefaultStratum(String stratum)
Установите слой значения по умолчанию этого VM (см.
Location для обсуждения слоев). |
void |
suspend()
Приостанавливает выполнение приложения, работающего в этой виртуальной машине.
|
List<ThreadGroupReference> |
topLevelThreadGroups()
Возвраты каждая группа потока, у которой нет родителя.
|
Строка |
version()
Возвращает версию среды выполнения Java в целевом VM как сообщающийся свойством
java.version . |
toString, virtualMachine
static final int TRACE_NONE
static final int TRACE_SENDS
static final int TRACE_RECEIVES
static final int TRACE_EVENTS
static final int TRACE_REFTYPES
static final int TRACE_OBJREFS
static final int TRACE_ALL
List<ReferenceType> classesByName(String className)
ReferenceType
поскольку каждый class или интерфейс находятся с именем. Поиск ограничивается загруженными классами только; никакая попытка не предпринимается, чтобы загрузить class имени. Возвращенный список будет включать ссылочные типы, загруженные, по крайней мере, на грани подготовки и типов (как массив), для которого не определяется подготовка.
className
- class / соединяет интерфейсом с именем к поискуReferenceType
объекты, каждый зеркально отражающий тип в целевом VM с именем.List<ReferenceType> allClasses()
ReferenceType
будет помещен в возвращенный список. Список будет включать ReferenceTypes, которые зеркально отражают классы, интерфейсы, и выстраивают типы. Возвращенный список будет включать ссылочные типы, загруженные, по крайней мере, на грани подготовки и типов (как массив), для которого не определяется подготовка.
ReferenceType
объекты, каждый зеркально отражающий загруженный вводит целевой VM.void redefineClasses(Map<? extends ReferenceType,byte[]> classToBytes)
Method.isObsolete()
возвратит true когда обращено один из этих методов. Если сброс такого фрейма требуется, использовать ThreadReference.popFrames(StackFrame)
выталкивать старое устаревшее выполнение метода от стека. Новые вызовы пересмотренных методов будут всегда вызывать новые версии. Эта функция не вызывает инициализации за исключением того, что, который произошел бы под общепринятой семантикой JVM. Другими словами пересмотр class не заставляет свои инициализаторы быть выполненными. Значения существующих ранее статических переменных останутся, как они были до вызова. Однако, абсолютно неинициализированные (новые) статические переменные будут присвоены их значение по умолчанию.
Если у пересмотренного class будут экземпляры тогда, то всем тем экземплярам определит поля пересмотренный class при завершении вызова. Существующие ранее поля сохранят свои предыдущие значения. У любых новых полей будут свои значения по умолчанию; никакие инициализаторы экземпляра или конструкторы не выполняются.
Потоки не должны быть приостановлены.
Никакие события не сгенерированы этой функцией.
Все контрольные точки в пересмотренных классах удаляются.
Не все целевые виртуальные машины поддерживают эту работу. Использовать canRedefineClasses()
определить, поддерживается ли работа. Использовать canAddMethod()
определить, может ли переопределение добавить методы. Использовать canUnrestrictedlyRedefineClasses()
чтобы определить, может ли переопределение изменить схему, удалите методы, измените иерархию class и т.д.
classToBytes
- Карта от ReferenceType
массиву байта. Байты представляют новое определение class и находятся в виртуальной машине Java формат файла class.UnsupportedOperationException
- если целевая виртуальная машина не поддерживает эту работу. canRedefineClasses()
ложь, любой вызов этого метода выдаст это исключение. canAddMethod()
ложная попытка добавить, что метод выдаст это исключение. canUnrestrictedlyRedefineClasses()
ложь, делая попытку любого следующего выдаст это исключение NoClassDefFoundError
- если байты не соответствуют ссылочному типу (имена не соответствуют).VerifyError
- если "верификатор" обнаруживает, что class, хотя хорошо формирующийся, содержит внутреннюю несогласованность или проблему безопасности.ClassFormatError
- если байты не представляют допустимый class.ClassCircularityError
- если зацикливание было обнаружено, инициализируя class.UnsupportedClassVersionError
- если номера основной версии и номера вспомогательной версии в байтах не поддерживаются VM.VMCannotBeModifiedException
- если VirtualMachine только для чтения - см. canBeModified()
.Method.isObsolete()
, ThreadReference.popFrames(com.sun.jdi.StackFrame)
, canRedefineClasses()
, canAddMethod()
, canUnrestrictedlyRedefineClasses()
List<ThreadReference> allThreads()
ThreadReference
это зеркально отражает это, помещается в список. Возвращенный список содержит потоки, создаваемые через java.lang. Поток, все собственные потоки, присоединенные к целевому VM через JNI, и системным потокам, создаваемым к установленному сроку VM. Объекты потока, которые еще не были запущены (см. Thread.start()
) и объекты потока, которые завершили их выполнение, не включаются в возвращенный список.ThreadReference
объекты, один для каждого рабочего потока в зеркально отраженном VM.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()
.BooleanValue mirrorOf(boolean value)
BooleanValue
для данного значения. Это значение может использоваться для установки и сравнения со значением, полученным от переменной или поля в этой виртуальной машине.value
- булево, для которого можно создать стоимостьBooleanValue
для данного булева.ByteValue mirrorOf(byte value)
ByteValue
для данного значения. Это значение может использоваться для установки и сравнения со значением, полученным от переменной или поля в этой виртуальной машине.value
- байт, для которого можно создать стоимостьByteValue
для данного байта.CharValue mirrorOf(char value)
CharValue
для данного значения. Это значение может использоваться для установки и сравнения со значением, полученным от переменной или поля в этой виртуальной машине.value
- случайная работа, для которой можно создать стоимостьCharValue
для данной случайной работы.ShortValue mirrorOf(short value)
ShortValue
для данного значения. Это значение может использоваться для установки и сравнения со значением, полученным от переменной или поля в этой виртуальной машине.value
- короткое, для которого можно создать стоимостьShortValue
для данного короткого.IntegerValue mirrorOf(int value)
IntegerValue
для данного значения. Это значение может использоваться для установки и сравнения со значением, полученным от переменной или поля в этой виртуальной машине.value
- интервал, для которого можно создать стоимостьIntegerValue
для данного интервала.LongValue mirrorOf(long value)
LongValue
для данного значения. Это значение может использоваться для установки и сравнения со значением, полученным от переменной или поля в этой виртуальной машине.value
- длинное, для которого можно создать стоимостьLongValue
для даваемого долго.FloatValue mirrorOf(float value)
FloatValue
для данного значения. Это значение может использоваться для установки и сравнения со значением, полученным от переменной или поля в этой виртуальной машине.value
- плавание, для которого можно создать стоимостьFloatValue
для данного плавания.DoubleValue mirrorOf(double value)
DoubleValue
для данного значения. Это значение может использоваться для установки и сравнения со значением, полученным от переменной или поля в этой виртуальной машине.value
- двойное, для которого можно создать стоимостьDoubleValue
для данного двойного.StringReference mirrorOf(String value)
value
- строка, которая будет созданаStringReference
это зеркально отражает недавно создаваемую строку в целевом VM.VMCannotBeModifiedException
- если VirtualMachine только для чтения - см. canBeModified()
.VoidValue mirrorOfVoid()
VoidValue
. К этому значению можно передать ThreadReference.forceEarlyReturn(com.sun.jdi.Value)
когда из пустого метода нужно выйти.VoidValue
.Process process()
Process
объект для этой виртуальной машины если запущено a LaunchingConnector
Process
объект для этой виртуальной машины, или нуль, если это не было запущено a LaunchingConnector
.VMCannotBeModifiedException
- если VirtualMachine только для чтения - см. canBeModified()
.void dispose()
suspend()
или ThreadReference.suspend()
возобновляются как много раз по мере необходимости для них, чтобы работать. ObjectReference.disableCollection()
. Ресурсы, происходящие в этом VirtualMachine (ObjectReferences, ReferenceTypes, и т.д.), станут недопустимыми.
void exit(int exitCode)
Потоки, работающие в зеркально отраженном VM, резко завершаются. Смертельное исключение потока не выдается и наконец блокирует, не выполняются.
exitCode
- код выхода для целевого VM. На некоторых платформах код выхода мог бы быть усеченным, например, к низшему порядку 8 битов.VMCannotBeModifiedException
- если VirtualMachine только для чтения - см. canBeModified()
.boolean canWatchFieldModification()
true
если функция поддерживается, false
иначе.boolean canWatchFieldAccess()
true
если функция поддерживается, false
иначе.boolean canGetBytecodes()
true
если функция поддерживается, false
иначе.boolean canGetSyntheticAttribute()
true
если функция поддерживается, false
иначе.boolean canGetOwnedMonitorInfo()
true
если функция поддерживается, false
иначе.boolean canGetCurrentContendedMonitor()
true
если функция поддерживается, false
иначе.boolean canGetMonitorInfo()
true
если функция поддерживается, false
иначе.boolean canUseInstanceFilters()
BreakpointRequest.addInstanceFilter(com.sun.jdi.ObjectReference)
.true
если функция поддерживается, false
иначе.boolean canRedefineClasses()
true
если функция поддерживается, false
иначе.redefineClasses(java.util.Map<? extends com.sun.jdi.ReferenceType, byte[]>)
boolean canAddMethod()
true
если функция поддерживается, false
иначе.redefineClasses(java.util.Map<? extends com.sun.jdi.ReferenceType, byte[]>)
boolean canUnrestrictedlyRedefineClasses()
true
если функция поддерживается, false
иначе.redefineClasses(java.util.Map<? extends com.sun.jdi.ReferenceType, byte[]>)
boolean canPopFrames()
true
если функция поддерживается, false
иначе.ThreadReference.popFrames(com.sun.jdi.StackFrame)
boolean canGetSourceDebugExtension()
true
если функция поддерживается, false
иначе.ReferenceType.sourceDebugExtension()
boolean canRequestVMDeathEvent()
VMDeathRequest
s.true
если функция поддерживается, false
иначе.EventRequestManager.createVMDeathRequest()
boolean canGetMethodReturnValues()
MethodExitEvent
s.true
если функция поддерживается, false
иначе.EventRequestManager.createMethodExitRequest()
boolean canGetInstanceInfo()
true
если функция поддерживается, false
иначе.instanceCounts(java.util.List<? extends com.sun.jdi.ReferenceType>)
, ReferenceType.instances(long)
, ObjectReference.referringObjects(long)
boolean canUseSourceNameFilters()
ClassPrepareRequest.addSourceNameFilter(java.lang.String)
.true
если функция поддерживается, false
иначе.boolean canForceEarlyReturn()
true
если функция поддерживается, false
иначе.ThreadReference.forceEarlyReturn(Value)
boolean canBeModified()
VMCannotBeModifiedException
бросается.true
если функция поддерживается, false
иначе.boolean canRequestMonitorEvents()
MonitorContendedEnterRequest
s. MonitorContendedEnteredRequest
s. MonitorWaitRequest
s. MonitorWaitedRequest
s.true
если функция поддерживается, false
иначе.EventRequestManager.createMonitorContendedEnterRequest()
, EventRequestManager.createMonitorContendedEnteredRequest()
, EventRequestManager.createMonitorWaitRequest()
, EventRequestManager.createMonitorWaitedRequest()
boolean canGetMonitorFrameInfo()
true
если функция поддерживается, false
иначе.ThreadReference.ownedMonitorsAndFrames()
boolean canGetClassFileVersion()
true
если функция поддерживается, false
иначе.ReferenceType.majorVersion()
, ReferenceType.minorVersion()
boolean canGetConstantPool()
true
если функция поддерживается, false
иначе.ReferenceType.constantPoolCount()
, ReferenceType.constantPool()
void setDefaultStratum(String stratum)
Location
для обсуждения слоев). Переопределяет на - class набор значения по умолчанию в файле class. Влияет на запросы расположения (такой как, Location.sourceName()
) и границы строки используются в единственном продвижении.
stratum
- слой, чтобы установить как значение по умолчанию VM, или нуль, чтобы использовать на - class значения по умолчанию.UnsupportedOperationException
- если целевая виртуальная машина не поддерживает эту работу.String getDefaultStratum()
null
(подразумевать, что на - class значение по умолчанию - ReferenceType.defaultStratum()
- должен использоваться), если слой значения по умолчанию не был установлен с setDefaultStratum(String)
.setDefaultStratum(String)
, ReferenceType.defaultStratum()
long[] instanceCounts(List<? extends ReferenceType> refTypes)
Не все целевые виртуальные машины поддерживают эту работу. Использовать canGetInstanceInfo()
определить, поддерживается ли работа.
refTypes
- список ReferenceType
объекты, для которых должны быть получены количества.long
содержа один элемент для каждого элемента в списке 'refTypes'. Элемент i из массива содержит число экземпляров в целевом VM ReferenceType в позиции i в списке 'refTypes'. Если список 'refTypes' пуст, массив нулевой длиной возвращается. Если ReferenceType в refTypes был собран "мусор", нуль возвращается для его количества экземпляра.UnsupportedOperationException
- если целевая виртуальная машина не поддерживает эту работу - см. canGetInstanceInfo()
NullPointerException
- если список 'refTypes' является нулем.ReferenceType.instances(long)
, ObjectReference.referringObjects(long)
String description()
version()
, VirtualMachineManager.majorInterfaceVersion()
, и VirtualMachineManager.minorInterfaceVersion()
String version()
java.version
. Для того, чтобы получить версию интерфейса JDI, использовать VirtualMachineManager.majorInterfaceVersion()
и VirtualMachineManager.minorInterfaceVersion()
String name()
java.vm.name
.void setDebugTraceMode(int traceFlags)
Вывод является зависящим от реализации, и режим трассировки может быть проигнорирован.
traceFlags
- идентифицирует который виды трассировки включить.
Авторское право © 1999, 2013, Oracle и/или его филиалы. Все права защищены.
ЧЕРНОВАЯ земля-b92