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