|
Java Debug Interface | |||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
ターゲット VM の実行コード内の位置です。Location は、中断したスレッドの現在位置を特定するために使用されます (ネイティブプログラム内の命令ポインタまたはプログラムカウンタレジスタに類似)。これらは、ブレークポイントの設定位置を特定するためにも使用されます。
位置の行番号を有効利用できるかどうかは、ターゲット VM から利用可能なデバッグ情報のレベルに依存します。
複数のミラーインタフェースが位置を保持します。このような各ミラーは、Locatable
インタフェースを拡張します。
Location のソース情報は使用される「層」によって変わります。層とは、一連の翻訳プロセスにおけるソースコードのレベルを指します。たとえば、baz という名前のプログラムを、Foo プログラミング言語で記述してから Bar 言語に翻訳し、最後に Java 言語に翻訳したとします。また、Java 言語層が Java
、残り 2 つの言語層がそれぞれ Foo、Bar と名付けられたものとします。このとき、sourceName()
メソッドと lineNumber()
メソッドを使って取得する位置は、Foo
層の場合であれば baz.foo の 14 行目、Bar
層であれば baz.bar の 23 行目、Java
層であれば 71 行目という具合になります。ある参照型に対して、Java 言語のソースファイルが 1 つしか存在しない場合、ほかの言語層でも 1 つとは限りません。このため、ソースパスを決定するには個々の Location を参照する必要があります。なお、層を明示的に指定しないメソッド (sourceName()
、sourcePath()
、および lineNumber()
) の場合、VM のデフォルト層 (VirtualMachine.getDefaultStratum()
) が使われます。メソッドパラメータとして明示的に指定されたか、VM のデフォルトとして暗黙に指定されたに関係なく、指定された層が null
であったり宣言する型内で利用できなかったりした場合は、宣言する型のデフォルト層 (declaringType()
.defaultStratum()
) が使用されます。通常の Java 言語のソースから派生したコードの場合、存在する層は 1 つだけ (Java
だけ) であり、それがデフォルト層として返されます。利用可能な層を確認するには、ReferenceType.availableStrata()
を使用します。
EventRequestManager
,
StackFrame
,
BreakpointEvent
,
ExceptionEvent
,
Locatable
メソッドの概要 | |
long |
codeIndex()
この Location のメソッド内のコード位置を取得します。 |
ReferenceType |
declaringType()
この Location が属する型を取得します。 |
boolean |
equals(Object obj)
指定されたオブジェクトがこの Location と等しいかどうか比較します。 |
int |
hashCode()
この Location のハッシュコード値を返します。 |
int |
lineNumber()
この Location の行番号を取得します。 |
int |
lineNumber(String stratum)
この Location の行番号です。 |
Method |
method()
この Location を含むメソッドを取得します。 |
String |
sourceName()
この位置に対応するソースの識別名を取得します。 |
String |
sourceName(String stratum)
この位置に対応するソースの識別名を取得します。 |
String |
sourcePath()
この位置に対応するソースへのパスを取得します。 |
String |
sourcePath(String stratum)
この位置に対応するソースへのパス名を取得します。 |
インタフェース com.sun.jdi.Mirror から継承したメソッド |
toString, virtualMachine |
インタフェース java.lang.Comparable から継承したメソッド |
compareTo |
メソッドの詳細 |
public ReferenceType declaringType()
ClassType
ですが、実行可能な位置は InterfaceType
の static 初期化子内にも存在する場合があります。
ReferenceType
public Method method()
Method
public long codeIndex()
public String sourceName() throws AbsentInformationException
このメソッドは、sourceName(vm.getDefaultStratum())
と等価です。詳細については、sourceName(String)
を参照してください。
AbsentInformationException
- ソース名が不明の場合public String sourceName(String stratum) throws AbsentInformationException
戻り値の名前は、指定された「層」に対するものです。層の詳細については、クラスのコメント
を参照してください。
戻り値の文字列は、この Location のソースファイルの非修飾名です。たとえば、java.lang.Thread
の場合、「Thread.java」
が返されます。
stratum
- 情報取得元の層。宣言する型のデフォルト層を使用する場合は null
AbsentInformationException
- ソース名が不明の場合public String sourcePath() throws AbsentInformationException
このメソッドは、sourcePath(vm.getDefaultStratum())
と等価です。詳細については、sourcePath(String)
を参照してください。
AbsentInformationException
- ソース名が不明の場合public String sourcePath(String stratum) throws AbsentInformationException
戻り値のパスは、指定された「層」に対するものです。層の詳細については、クラスのコメント
を参照してください。
リファレンス実装では、Java プログラミング言語層のようにソースパスを明示的に指定しない層の場合、戻り値の文字列は、declaringType()
のパッケージ名をプラットフォーム固有のパス名に変換したものに、この Location のソースファイルの非修飾名 (sourceName(stratum)
) を付加したものになります。たとえば、Windows プラットフォームの場合、java.lang.Thread
は 「java\lang\Thread.java」
を返します。
stratum
- 情報取得元の層。宣言する型のデフォルト層を使用する場合は null
AbsentInformationException
- ソース名が不明の場合public int lineNumber()
このメソッドは、lineNumber(vm.getDefaultStratum())
と等価です。詳細については、lineNumber(String)
を参照してください。
public int lineNumber(String stratum)
sourceName(stratum)
により指定されたソースに対する相対位置を示します。
戻り値の行番号は、指定された「層」に対するものです。層の詳細については、クラスのコメント
を参照してください。
stratum
- 情報取得元の層。宣言する型のデフォルト層を使用する場合は null
public boolean equals(Object obj)
Object
内の equals
public int hashCode()
Object
内の hashCode
|
Java Debug Interface | |||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |