-
- 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
-
-
方法摘要
所有方法 实例方法 抽象方法 变量和类型 方法 描述 longcodeIndex()获取此位置方法中的代码位置。ReferenceTypedeclaringType()获取此Location所属的类型。booleanequals(Object obj)将指定的Object与此Location进行相等性比较。inthashCode()返回此Location的哈希码值。intlineNumber()获取此Location的行号。intlineNumber(String stratum)此位置的行号。方法method()获取包含此Location的方法。StringsourceName()获取与此位置对应的源的标识名称。StringsourceName(String stratum)获取与此位置对应的源的标识名称。StringsourcePath()获取与此位置对应的源的路径。StringsourcePath(String stratum)获取与此位置对应的源的路径。-
声明方法的接口 java.lang.Comparable
compareTo
-
声明方法的接口 com.sun.jdi.Mirror
toString, virtualMachine
-
-
-
-
方法详细信息
-
declaringType
ReferenceType declaringType()
获取此Location所属的类型。 通常,声明类型是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)。返回的字符串是此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编程语言层从不这样做),返回的字符串是转换为平台相关路径的包名
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)。- 结果
- 指定源中的行的int,如果信息不可用则返回-1; 特别是,对于本机方法,始终返回-1。
-
lineNumber
int lineNumber(String stratum)
- 参数
-
stratum- 从声明类型的默认层或从null检索信息的层。 - 结果
- 指定源中的行的int,如果信息不可用则返回-1; 特别是,对于本机方法,始终返回-1。
- 从以下版本开始:
- 1.4
-
equals
boolean equals(Object obj)
将指定的Object与此Location进行相等性比较。- 重写:
-
equals,类Object - 参数
-
obj- 要与之比较的引用对象。 - 结果
- 如果对象是位置,并且它引用与此位置相同的VM中的同一点,则为true。
- 另请参见:
-
Object.hashCode(),HashMap
-
hashCode
int hashCode()
返回此Location的哈希码值。- 重写:
-
hashCode在类Object - 结果
- 整数哈希码
- 另请参见:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
-
-