Spec-Zone.ru › OpenJDK 17

Интерфейс Location

Все суперинтерфейсы:
Comparable<Location>, Mirror
public interface Location extends Mirror, Comparable<Location>
Точка внутри исполняемого кода целевой виртуальной машины. Местоположения используются для идентификации текущего положения приостановленного потока (аналогично указателю инструкции или регистру счётчика команд в нативных программах). Они также используются для определения позиции, в которой необходимо установить контрольную точку.

Доступность номера строки для местоположения будет зависеть от уровня отладочной информации, доступной из целевой виртуальной машины.

Несколько зеркальных интерфейсов имеют местоположения. Каждый такой интерфейс расширяет интерфейс Locatable.

Страты

Информация о коде для местоположения зависит от используемого страта. Страт — это уровень исходного кода в последовательности переводов. Например, предположим, что программа baz написана на языке программирования «Foo», затем переведена на язык «Bar» и, наконец, на язык программирования Java. Страт языка программирования Java называется "Java", предположим, что другие страты называются «Foo» и «Bar». Данное местоположение (как оно отображается методами sourceName() и lineNumber()) может находиться на строке 14 файла «baz.foo» в "Foo" страте, на строке 23 файла «baz.bar» в "Bar" страте и на строке 71 файла "Java" страта. Обратите внимание, что, хотя язык программирования Java может иметь только один исходный файл для типа ссылки, это ограничение не относится к другим стратам — таким образом, каждый Location должен быть проконсультирован для определения его пути к исходному коду. Запросы, которые не указывают страт (sourceName(), sourcePath() и lineNumber()), используют стандартный страт виртуальной машины (VirtualMachine.getDefaultStratum()). Если указанный страт (явно указанный в параметре метода или неявно, как стандартный страт виртуальной машины) равен null или не доступен в объявляемом типе, используется стандартный страт объявляемого типа (declaringType().defaultStratum()). Обратите внимание, что в обычном случае кода, происходящего из исходного кода языка программирования Java, будет только один страт ("Java") и он будет возвращён как стандартный. Чтобы определить доступные страты, используйте ReferenceType.availableStrata().

С:
1.3
См. также:
  • EventRequestManager
  • StackFrame
  • BreakpointEvent
  • ExceptionEvent
  • Locatable

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

Модификатор и тип Метод Описание
long codeIndex()
Получение позиции кода внутри метода данного местоположения.
ReferenceType declaringType()
Получение типа, к которому принадлежит данное местоположение.
boolean equals(Object obj)
Сравнение указанного объекта с этим местоположением на равенство.
int hashCode()
Возвращение значения хэш-кода для этого местоположения.
int lineNumber()
Получение номера строки этого местоположения.
int lineNumber(String stratum)
Номер строки этого местоположения.
Method method()
Получение метода, содержащего это местоположение.
String sourceName()
Получение идентифицирующего имени источника, соответствующего этому местоположению.
String sourceName(String stratum)
Получение идентифицирующего имени источника, соответствующего этому местоположению.
String sourcePath()
Получение пути к источнику, соответствующему этому местоположению.
String sourcePath(String stratum)
Получение пути к источнику, соответствующему этому местоположению.

Методы, объявленные в интерфейсе java.lang.Comparable

compareTo

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

toString, virtualMachine
END_OF_DOCUMENT_MARKER

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

declaringType

ReferenceType declaringType()
Получает тип, к которому принадлежит эта Location. Обычно тип объявления — это ClassType, но исполняемые локации также могут существовать внутри статического инициализатора InterfaceType.
Возвращает:
тип ReferenceType, содержащий эту Location.

method

Method method()
Получает метод, содержащий эту Location.
Возвращает:
метод Method локации.

codeIndex

long codeIndex()
Получает позицию кода в методе данной локации.
Возвращает:
целое число, представляющее позицию в методе, или -1, если локация находится в методе нативного кода.

sourceName

String sourceName() throws AbsentInformationException
Получает идентифицирующее имя источника, соответствующего этой локации.

Этот метод эквивалентен sourceName(vm.getDefaultStratum()) — см. sourceName(String) для получения дополнительной информации.

Возвращает:
строку, указывающую источник
Исключение:
AbsentInformationException — если имя источника неизвестно

sourceName

String sourceName(String stratum) throws AbsentInformationException
Получает идентифицирующее имя источника, соответствующего этой локации. Интерпретация этой строки является задачей механизма управления источниками.

Возвращаемое имя относится к указанному слою (см. class comment для описания слоев).

Возвращаемая строка — это имя файла источника без пути для этой локации. Например, java.lang.Thread вернет "Thread.java".

Параметры:
stratum — слой для извлечения информации или null для стандартного слоя типа объявления.
Возвращает:
строку, указывающую источник
Исключение:
AbsentInformationException — если имя источника неизвестно
С момента:
1.4

sourcePath

String sourcePath() throws AbsentInformationException
Получает путь к источнику, соответствующему этой локации.

Этот метод эквивалентен sourcePath(vm.getDefaultStratum()) — см. sourcePath(String) для получения дополнительной информации.

Возвращает:
строку, указывающую источник
Исключение:
AbsentInformationException — если имя источника неизвестно

sourcePath

String sourcePath(String stratum) throws AbsentInformationException
Получает путь к источнику, соответствующему этой локации. Интерпретация этой строки является задачей механизма управления источниками.

Возвращаемый путь относится к указанному слою (см. class comment для описания слоев).

В реализации по умолчанию, для слоев, которые не указывают путь к источнику (слой языка Java никогда этого не делает), возвращаемая строка — это имя пакета declaringType(), преобразованное в платформозависимый путь, за которым следует имя файла источника без пути для этой локации (sourceName(stratum)). Например, на платформе Windows, java.lang.Thread вернёт "java\lang\Thread.java".

Параметры:
stratum — слой для извлечения информации или null для стандартного слоя типа объявления.
Возвращает:
строку, указывающую источник
Исключение:
AbsentInformationException — если имя источника неизвестно
С момента:
1.4

lineNumber

int lineNumber()
Получает номер строки этой локации.

Этот метод эквивалентен lineNumber(vm.getDefaultStratum()) — см. lineNumber(String) для получения дополнительной информации.

Возвращает:
целое число, указывающее строку в источнике, возвращает -1, если информация недоступна; в частности, всегда возвращает -1 для нативных методов.

lineNumber

int lineNumber(String stratum)
Номер строки этой Location. Номер строки относится к источнику, указанному в sourceName(stratum).

Возвращаемый номер строки относится к указанному слою (см. class comment для описания слоев).

Параметры:
stratum — слой для извлечения информации или null для стандартного слоя типа объявления.
Возвращает:
целое число, указывающее строку в источнике, возвращает -1, если информация недоступна; в частности, всегда возвращает -1 для нативных методов.
С момента:
1.4

equals

boolean equals(Object obj)
Сравнивает указанный объект с этой локацией на равенство.
Переопределяет:
equals в классе Object
Параметры:
obj — объект-ссылка для сравнения.
Возвращает:
true, если объект является Location и ссылается на ту же точку в той же виртуальной машине, что и эта Location.
См. также:
  • Object.hashCode()
  • HashMap

hashCode

int hashCode()
Возвращает значение хэш-кода для этой локации.
Переопределяет:
hashCode в классе Object
Возвращает:
целое число хэш-кода
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/jdk.jdi/com/sun/jdi/Location.html

Spec-Zone.ru

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