-
- All Superinterfaces:
-
Comparable<Location>,Mirror
public interface Location extends Mirror, Comparable<Location>
目标VM的执行代码中的一个点。 位置用于标识挂起线程的当前位置(类似于本机程序中的指令指针或程序计数器寄存器)。 它们也用于识别设置断点的位置。位置的行号的可用性将取决于目标VM可用的调试信息的级别。
几个镜像接口有位置。 每个这样的镜像扩展了一个
Locatable接口。位置的源信息取决于所使用的层 。 层次是翻译序列中的源代码级别。 例如,说baz程序是用编程语言“Foo”编写的,然后翻译成“Bar”语言,最后转化为Java编程语言。 Java编程语言层次被命名为
"Java",我们假设其他层被命名为“Foo”和“Bar”。 一个给定的位置(如由观察sourceName()种lineNumber()方法)可能是在“baz.foo”的线14"Foo"在“baz.bar”的阶层,第23行"Bar"地层和的线71"Java"地层。 请注意,虽然Java编程语言可能只有一个源文件作为引用类型,但此限制不适用于其他层 - 因此应查阅每个位置以确定其源路径。 不指定层(查询sourceName(),sourcePath()和lineNumber())使用虚拟机的默认层(VirtualMachine.getDefaultStratum())。 如果指定层(无论是作为虚拟机的默认方法参数或隐显式指定)为null或不可用的声明类型,声明类型的默认阶层使用(declaringType()。defaultStratum())。 请注意,在正常情况下,源自Java编程语言源的代码将只有一个层("Java"),并将作为默认值返回。 确定可用地层使用ReferenceType.availableStrata()。- 从以下版本开始:
- 1.3
- 另请参见:
-
EventRequestManager,StackFrame,BreakpointEvent,ExceptionEvent,Locatable
-
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 longcodeIndex()获取此位置方法中的代码位置。ReferenceTypedeclaringType()获取此位置所属的类型。booleanequals(Object obj)将指定的对象与此位置进行比较以获得相等性。inthashCode()返回此位置的哈希码值。intlineNumber()获取此位置的行号。intlineNumber(String stratum)此位置的行号。方法method()获取包含此位置的方法。StringsourceName()获取与此位置相对应的源的标识名称。StringsourceName(String stratum)获取与此位置相对应的源的标识名称。StringsourcePath()获取与此位置相对应的源的路径。StringsourcePath(String stratum)获取与此位置相对应的源的路径。-
Methods inherited from interface java.lang.Comparable
compareTo
-
Methods inherited from interface com.sun.jdi.Mirror
toString, virtualMachine
-
-
-
-
方法详细信息
-
declaringType
ReferenceType declaringType()
获取此位置所属的类型。 通常,声明类型是ClassType,但可执行位置也可能存在于静态初始化程序中的一个InterfaceType中 。- 结果
-
包含此位置的
ReferenceType。
-
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)。返回的字符串是此位置的源文件的不合格名称。 例如,
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编程语言stratum永远不会)的层,返回的字符串是
declaringType()的包名称,转换为平台相关路径,后跟源文件的不合格名称位置(sourceName(stratum))。 例如,在Windows平台上,java.lang.Thread将返回"java\lang\Thread.java"。- 参数
-
stratum- 为声明类型的默认层次检索信息或null的层次。 - 结果
- 一个指定源的字符串
- 异常
-
AbsentInformationException- 如果源名称不知道 - 从以下版本开始:
- 1.4
-
lineNumber
int lineNumber()
获取此位置的行号。此方法相当于
lineNumber(vm.getDefaultStratum())- 有关详细信息,请参阅lineNumber(String)。- 结果
- 指定源中的行的int返回-1,如果信息不可用; 具体来说,总是返回-1为本地方法。
-
lineNumber
int lineNumber(String stratum)
- 参数
-
stratum- 从声明类型的默认层次中检索信息的层或null。 - 结果
- 指定源中的行的int返回-1,如果信息不可用; 具体来说,总是返回-1为本地方法。
- 从以下版本开始:
- 1.4
-
equals
boolean equals(Object obj)
将指定的对象与此位置进行比较以获得相等性。- 重写:
-
equals在Object - 参数
-
obj- 与之比较的参考对象。 - 结果
- 如果对象是位置,并且它是否指向与此位置相同的VM中的同一点,则为true。
- 另请参见:
-
Object.hashCode(),HashMap
-
hashCode
int hashCode()
返回此位置的哈希码值。- 重写:
-
hashCode在Object - 结果
- 整数哈希码
- 另请参见:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
-
-