Интерфейс 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()

Получение позиции кода в методе этой локации.

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

Методы

declaringType

ReferenceType declaringType()

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

Возвращает:
the ReferenceType содержащий эту Location.

method

Method method()

Получает метод, содержащий эту Location.

Возвращает:
the location's Method.

codeIndex

long codeIndex()

Получает позицию кода в методе этой Location.

Возвращает:
long, представляющий позицию в методе, или -1, если Location находится в нативном методе.

sourceName

String sourceName()
           throws AbsentInformationException

Получает идентифицирующее имя источника, соответствующего этой Location.

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

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

sourceName

String sourceName(String stratum)
           throws AbsentInformationException

Получает идентифицирующее имя источника, соответствующего этой Location. Интерпретация этой строки ложится на механизм управления источником.

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

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

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

sourcePath

String sourcePath()
           throws AbsentInformationException

Получает путь к источнику, соответствующему этой Location.

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

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

sourcePath

String sourcePath(String stratum)
           throws AbsentInformationException

Получает путь к источнику, соответствующему этой Location. Интерпретация этой строки ложится на механизм управления источником.

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

В эталонной реализации, для слоев, которые явно не указывают путь к источнику (слой языка программирования Java никогда этого не делает), возвращаемая строка — это имя пакета declaringType(), преобразованное в путь, зависящий от платформы, за которым следует полное имя файла источника для этой Location (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, 2020, 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/11/docs/api/jdk.jdi/com/sun/jdi/Location.html

Spec-Zone .ru
спецификации, руководства, описания, API