- 所有超级接口:
-
Comparable<Location>
,Mirror
位置的行号的可用性取决于从目标虚拟机获得的调试信息级别。
几个镜像接口具有位置。每个这样的镜像都扩展了一个Locatable
接口。
位置的源信息取决于所使用的stratum。stratum是翻译序列中的源代码级别。例如,假设baz程序是用编程语言"Foo"编写的,然后转换为语言"Bar",最后转换为Java编程语言。Java编程语言stratum被命名为"Java"
,假设其他strata被命名为"Foo"和"Bar"。给定位置(通过sourceName()
和lineNumber()
方法查看)可能在"Foo"
stratum的"baz.foo"的第14行,在"Bar"
stratum的"baz.bar"的第23行,在"Java"
stratum的第71行。请注意,虽然Java编程语言可能只有一个参考类型的源文件,但这个限制不适用于其他strata - 因此应查询每个位置以确定其源路径。不指定stratum的查询(sourceName()
、sourcePath()
和lineNumber()
)使用VM的默认stratum(VirtualMachine.getDefaultStratum()
)。如果指定的stratum(无论是由方法参数显式指定还是隐式作为VM的默认值)为null
或在声明类型中不可用,则使用声明类型的默认stratum(declaringType()
.defaultStratum()
)。请注意,在代码起源为Java编程语言源时,通常情况下只有一个stratum("Java"
),并且将其作为默认返回。要确定可用的strata,请使用ReferenceType.availableStrata()
。
- 自版本:
- 1.3
- 参见:
-
Method Summary
Modifier and TypeMethodDescriptionlong
获取此位置所在方法内的代码位置。获取此位置所属的类型。boolean
将指定的对象与此位置进行比较以检查是否相等。int
hashCode()
返回此位置的哈希码值。int
获取此位置的行号。int
lineNumber
(String stratum) 此位置的行号。method()
获取包含此位置的方法。获取与此位置对应的源的标识名称。sourceName
(String stratum) 获取与此位置对应的源的标识名称。获取与此位置对应的源的路径。sourcePath
(String stratum) 获取与此位置对应的源的路径。Methods declared in interface java.lang.Comparable
compareTo
Methods declared in interface com.sun.jdi.Mirror
toString, virtualMachine
-
Method Details
-
declaringType
ReferenceType declaringType()获取此位置所属的类型。通常,声明类型是一个ClassType
,但可执行位置也可能存在于InterfaceType
的静态初始化程序中。- 返回:
-
包含此位置的
ReferenceType
。
-
method
Method method()获取包含此位置的方法。- 返回:
-
位置的
Method
。
-
codeIndex
long codeIndex()获取此位置所在方法内的代码位置。- 返回:
- 表示方法内位置的长整型,如果位置在本地方法内则返回-1。
-
sourceName
获取与此位置对应的源的标识名称。此方法等同于
sourceName(vm.getDefaultStratum())
- 有关更多信息,请参阅sourceName(String)
。- 返回:
- 指定源的字符串
- 抛出:
-
AbsentInformationException
- 如果未知源名称
-
sourceName
获取与此位置对应的源的标识名称。对此字符串的解释由源存储库机制负责。返回的名称是指定的stratum(请参阅描述strata的
类注释
)。返回的字符串是此位置的源文件的未限定名称。例如,
java.lang.Thread
将返回"Thread.java"
。- 参数:
-
stratum
- 要从中检索信息的stratum,或者为声明类型的默认stratum的null
。 - 返回:
- 指定源的字符串
- 抛出:
-
AbsentInformationException
- 如果未知源名称 - 自版本:
- 1.4
-
sourcePath
获取与此位置对应的源的路径。此方法等同于
sourcePath(vm.getDefaultStratum())
- 有关更多信息,请参阅sourcePath(String)
。- 返回:
- 指定源的字符串
- 抛出:
-
AbsentInformationException
- 如果未知源名称
-
sourcePath
获取与此位置对应的源的路径。对此字符串的解释由源存储库机制负责。返回的路径是指定的stratum(请参阅描述strata的
类注释
)。在参考实现中,对于不显式指定源路径的strata(Java编程语言stratum从不这样做),返回的字符串是
declaringType()
的包名转换为平台相关路径,后跟此位置的源文件的未限定名称(sourceName(stratum)
)。例如,在Windows平台上,java.lang.Thread
将返回"java\lang\Thread.java"
。- 参数:
-
stratum
- 要从中检索信息的stratum,或者为声明类型的默认stratum的null
。 - 返回:
- 指定源的字符串
- 抛出:
-
AbsentInformationException
- 如果未知源名称 - 自版本:
- 1.4
-
lineNumber
int lineNumber()获取此位置的行号。此方法等同于
lineNumber(vm.getDefaultStratum())
- 有关更多信息,请参阅lineNumber(String)
。- 返回:
- 指定源中的行数,如果信息不可用则返回-1;特别地,对于本地方法始终返回-1。
-
lineNumber
此位置的行号。行号是相对于由sourceName(stratum)
指定的源的。返回的行号是指定的stratum(请参阅描述strata的
类注释
)。- 参数:
-
stratum
- 要从中检索信息的stratum,或者为声明类型的默认stratum的null
。 - 返回:
- 指定源中的行数,如果信息不可用则返回-1;特别地,对于本地方法始终返回-1。
- 自版本:
- 1.4
-
equals
将指定的对象与此位置进行比较以检查是否相等。 -
hashCode
int hashCode()返回此位置的哈希码值。
-