モジュール 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
関連項目:
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    long
    このLocationのメソッド内のコード位置を取得します。
    このLocationが属する型を取得します。
    boolean
    指定されたObjectがこのLocationと等しいかどうか比較します。
    int
    このLocationのハッシュ・コード値を返します。
    int
    このLocationの行番号を取得します。
    int
    lineNumber(String stratum)
    このLocationの行番号です。
    このLocationを含むメソッドを取得します。
    このロケーションに対応するソースの識別名を取得します。
    sourceName(String stratum)
    このロケーションに対応するソースの識別名を取得します。
    この位置に対応するソースへのパスを取得します。
    sourcePath(String stratum)
    この位置に対応するソースへのパスを取得します。

    インタフェース java.lang.Comparableで宣言されたメソッド

    compareTo

    インタフェース com.sun.jdi.Mirrorで宣言されたメソッド

    toString, virtualMachine
  • メソッドの詳細

    • declaringType

      ReferenceType declaringType()
      このLocationが属する型を取得します。 通常、宣言する型はClassTypeですが、実行可能な位置はInterfaceTypeのstatic初期化子内にも存在する場合があります。
      戻り値:
      このLocationを含むReferenceType
    • method

      Method method()
      このLocationを含むメソッドを取得します。
      戻り値:
      その位置のMethod
    • codeIndex

      long codeIndex()
      このLocationのメソッド内のコード位置を取得します。
      戻り値:
      メソッド内の位置を表すlong値。位置がnativeメソッド内の場合は -1。
    • sourceName

      String sourceName() throws AbsentInformationException
      このロケーションに対応するソースの識別名を取得します。

      このメソッドは、sourceName(vm.getDefaultStratum())と同等です(詳細はsourceName(String)を参照)。

      戻り値:
      ソースを指定する文字列
      例外:
      AbsentInformationException - ソース名が不明の場合
    • sourceName

      このロケーションに対応するソースの識別名を取得します。 この文字列は、ソース・リポジトリ・メカニズムで解釈されます。

      返される名前は、指定されたの名前です。層の詳細は、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

      この位置に対応するソースへのパスを取得します。 この文字列は、ソース・リポジトリ・メカニズムで解釈されます。

      返されるパスは、指定されたのパスです。層の詳細は、class commentを参照してください。

      リファレンス実装では、Javaプログラミング言語層のようにソース・パスを明示的に指定しない層の場合、declaringType()のパッケージ名をプラットフォーム固有のパス名に変換した結果に、このLocationのソース・ファイルの修飾されていない名前(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を返す。特に、nativeメソッドには常に -1を返す。
    • lineNumber

      int lineNumber(String stratum)
      このLocationの行番号です。 行番号は、sourceName(stratum)により指定されたソースからの相対位置を示します。

      返される行番号は、指定されたの行番号です。層の詳細は、class commentを参照してください。

      パラメータ:
      stratum - 情報取得元の層。宣言する型のデフォルト層を使用する場合はnull
      戻り値:
      ソース内の行を指定するint型の値。情報を利用できない場合は -1を返す。特に、nativeメソッドには常に -1を返す。
      導入されたバージョン:
      1.4
    • equals

      boolean equals(Object obj)
      指定されたObjectがこのLocationと等しいかどうか比較します。
      オーバーライド:
      equals、クラスObject
      パラメータ:
      obj - 比較対象の参照オブジェクト。
      戻り値:
      ObjectがLocationである場合、およびObjectがこのLocationと同じVM内の同じ位置を参照する場合はtrue。
      関連項目:
    • hashCode

      int hashCode()
      このLocationのハッシュ・コード値を返します。
      オーバーライド:
      hashCode、クラスObject
      戻り値:
      整数のハッシュ・コード
      関連項目: