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

    修飾子と型 メソッド 説明
    long codeIndex()
    このLocationのメソッド内のコード位置を取得します。
    ReferenceType declaringType()
    このLocationが属する型を取得します。
    boolean equals​(Object obj)
    指定されたObjectがこの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)
    この位置に対応するソースへのパスを取得します。

    インタフェース 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

      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()のパッケージ名をプラットフォーム固有のパス名に変換した結果に、この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。
      関連項目:
      Object.hashCode()HashMap
    • hashCode

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