Spec-Zone.ru › OpenJDK 24

Интерфейс Location

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

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

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

Слои

Информация о источнике для Location зависит от слоя, который используется. Слой - это уровень исходного кода в последовательности переводов. Например, скажем, программа 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()
Возвращает позицию кода в методе данного Location.
ReferenceType declaringType()
Возвращает тип, к которому принадлежит этот Location.
boolean equals(Object obj)
Сравнивает указанный Object с этим Location на равенство.
int hashCode()
Возвращает значение хэш-кода для этого Location.
int lineNumber()
Возвращает номер строки этого Location.
int lineNumber(String stratum)
Номер строки данного Location.
Method method()
Возвращает метод, содержащий этот Location.
String sourceName()
Возвращает идентифицирующее имя источника, соответствующее данному месту.
String sourceName(String stratum)
Возвращает идентифицирующее имя источника, соответствующее данному месту.
String sourcePath()
Возвращает путь к источнику, соответствующему данному месту.
String sourcePath(String stratum)
Возвращает путь к источнику, соответствующему данному месту.

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

compareTo

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

toString, virtualMachine

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

declaringType

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

method

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

codeIndex

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

sourceName

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

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

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

sourceName

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

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

Возвращаемая строка — это имя файла источника без пути для этой Location. Например, 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 programming language этого не делает), возвращаемая строка — это имя пакета declaringType(), преобразованное в зависимый от платформы путь, за которым следует имя файла источника без пути для данной локации (sourceName(stratum)). Например, на платформе Windows, java.lang.Thread вернёт "java\lang\Thread.java".

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

lineNumber

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

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

hashCode

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

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

Spec-Zone.ru

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