モジュール jdk.jdi
パッケージ com.sun.jdi

インタフェースLocation

すべてのスーパー・インタフェース:
Comparable<Location>, Mirror

public interface Location extends Mirror, Comparable<Location>
ターゲットVMの実行コード内の位置です。 Locationは、中断したスレッドの現在位置を特定するために使用されます(ネイティブ・プログラム内の命令ポインタまたはプログラム・カウンタ・レジスタに類似)。 これらは、ブレークポイントの設定位置を特定するためにも使用されます。

位置の行番号を有効利用できるかどうかは、ターゲットVMから利用可能なデバッグ情報のレベルに依存します。

複数のミラー・インタフェースが位置を保持します。 このような各ミラーは、Locatableインタフェースを拡張します。

Strata

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()を使用します。

導入されたバージョン:
1.3
関連項目: