ThreadReference.frames()を呼び出して取得できます。 
 StackFrameを使用して、メソッドの局所変数およびその現在の値にアクセスすることができます。
StackFrameには寿命があります。 これは、スレッドが中断しているときにだけ使用でき、スレッドが再開されると無効になります。
 ターゲットVMが切断されていて、VMDisconnectEventがEventQueueから読み出されたか読出せる場合は、StackFrameをパラメータとして取るStackFrame上のメソッドはVMDisconnectedExceptionをスローします。
 
 StackFrameをパラメータとして取るStackFrame上のメソッドは、ターゲットVMのメモリーが不足した場合にVMOutOfMemoryExceptionをスローします。
- 導入されたバージョン:
- 1.3
- 
メソッドのサマリー修飾子と型メソッド説明このフレーム内のすべての引数の値を返します。getValue(LocalVariable variable)このフレームのLocalVariableのValueを取得します。getValues(List<? extends LocalVariable> variables)このフレーム内の複数の局所変数の値を返します。location()フレーム内の現在の命令のLocationを返します。voidsetValue(LocalVariable variable, Value value)このフレームのLocalVariableのValueを設定します。現在のフレームのthisの値を返します。thread()このフレームのメソッドが実行されているスレッドを返します。visibleVariableByName(String name)LocalVariableのうち、指定された名前と一致し、現在のフレーム位置で可視なものを検索します。このフレームの位置からアクセスできる各LocalVariableを含むリストを返します。インタフェース com.sun.jdi.Mirrorで宣言されたメソッドtoString, virtualMachine
- 
メソッドの詳細- 
locationLocation location()フレーム内の現在の命令のLocationを返します。 このフレームを作成したメソッドには、返された位置からアクセスすることもできます。 スタック内の最上位のフレームでは、次に実行される命令の位置を返します。 その他のすべてのフレームでは、次のフレームのメソッドが呼出し元の命令の位置を返します。 フレームがnativeメソッドの呼出しを表す場合は、返される位置はクラスとメソッドを示していますが、コード・インデックスは無効(-1)です。- 定義:
- location、インタフェース:- Locatable
- 戻り値:
- 現在の命令のLocation。
- 例外:
- InvalidStackFrameException- このスタック・フレームが無効になっている場合。 フレームのスレッドが再開されると、スタック・フレームは無効になる。
 
- 
threadThreadReference thread()このフレームのメソッドが実行されているスレッドを返します。- 戻り値:
- フレームのスレッドをミラー化するThreadReference。
- 例外:
- InvalidStackFrameException- このスタック・フレームが無効になっている場合。 フレームのスレッドが再開されると、スタック・フレームは無効になる。
 
- 
thisObjectObjectReference thisObject()現在のフレームのthisの値を返します。 thisのObjectReferenceは、非nativeのインスタンス・メソッドに対してだけ使用できます。- 戻り値:
- ObjectReference。フレームがnativeまたはstaticメソッドを表している場合はnull。
- 例外:
- InvalidStackFrameException- このスタック・フレームが無効になっている場合。 フレームのスレッドが再開されると、スタック・フレームは無効になる。
 
- 
visibleVariablesList<LocalVariable> visibleVariables() throws AbsentInformationExceptionこのフレームの位置からアクセスできる各LocalVariableを含むリストを返します。可視性は、このStackFrameの現在の命令のコード・インデックスによって決定されます。 各変数には、アクセスできるバイト・コード・インデックスの範囲が設定されています。 スタック・フレームのメソッドと変数のメソッドが一致し、StackFrameのコード・インデックスが変数のバイト・コードの範囲内に存在する場合は、この変数にアクセスすることができます。 変数のバイト・コードの範囲は、変数のスコープ以下ですが、次の特定の環境ではスコープを超えることもできます。 - コンパイラとVMがただちに変数のスロットを再利用しない。
- 上記の結果により拡張した範囲を報告するように、コンパイラとVMが実装されている。
 - 戻り値:
- 現在アクセス可能なLocalVariableオブジェクトのリスト。可視変数がない場合は空のリスト。特に、nativeメソッド内のフレームは常に長さゼロのリストを返す。
- 例外:
- AbsentInformationException- このメソッドのローカル変数情報がない場合。
- InvalidStackFrameException- このスタック・フレームが無効になっている場合。 フレームのスレッドが再開されると、スタック・フレームは無効になる。
- NativeMethodException- 現在のメソッドがnativeの場合。
 
- 
visibleVariableByNameLocalVariable visibleVariableByName(String name) throws AbsentInformationExceptionLocalVariableのうち、指定された名前と一致し、現在のフレーム位置で可視なものを検索します。 可視性については、visibleVariables()を参照してください。- パラメータ:
- name- 検索する変数名
- 戻り値:
- 一致するLocalVariable。指定された名前の可視変数がない場合はnull。nativeメソッド内のフレームは常にnullを返す。
- 例外:
- AbsentInformationException- このメソッドのローカル変数情報がない場合。
- InvalidStackFrameException- このスタック・フレームが無効になっている場合。 フレームのスレッドが再開されると、スタック・フレームは無効になる。
- NativeMethodException- 現在のメソッドがnativeの場合。
 
- 
getValueValue getValue(LocalVariable variable)このフレームのLocalVariableのValueを取得します。 このフレームのメソッドに対して有効で、visibleVariables()に記述されている規則に基づく可視変数である必要があります。- パラメータ:
- variable- アクセスする- LocalVariable
- 戻り値:
- インスタンス・フィールドのValue。
- 例外:
- IllegalArgumentException- 変数がこのフレームのメソッドに対して無効な場合、または可視変数でない場合。
- InvalidStackFrameException- このスタック・フレームが無効になっている場合。 フレームのスレッドが再開されると、スタック・フレームは無効になる。
 
- 
getValuesMap<LocalVariable,Value> getValues(List<? extends LocalVariable> variables)このフレーム内の複数の局所変数の値を返します。 各変数が、このフレームのメソッドに対して有効で、visibleVariables()に記述されている規則に基づく可視変数である必要があります。- パラメータ:
- variables- アクセスする- LocalVariableオブジェクトのリスト
- 戻り値:
- 各LocalVariableとそのValueを関連付けるマップ
- 例外:
- IllegalArgumentException- 任意の変数がこのフレームのメソッドに対して無効な場合、または可視変数でない場合。
- InvalidStackFrameException- このスタック・フレームが無効になっている場合。 フレームのスレッドが再開されると、スタック・フレームは無効になる。
 
- 
setValuevoid setValue(LocalVariable variable, Value value) throws InvalidTypeException, ClassNotLoadedExceptionこのフレームのLocalVariableのValueを設定します。 このフレームのメソッドに対して有効で、visibleVariables()に記述されている規則に基づく可視変数である必要があります。オブジェクトの値は、この変数の型への代入互換性を持たなければいけません(これは、この変数の型は、囲むクラスのクラス・ローダーによってロードする必要があることを意味する)。 プリミティブ値は、この変数の型への代入互換性を持たなければいけません。つまり、情報を失わずにこの変数の型に変換できる必要があります。 代入互換性の詳細は、JLSのセクション5.2を参照してください。 - パラメータ:
- variable- 要求された値を含むフィールド
- value- 代入する新しい値
- 例外:
- IllegalArgumentException- フィールドがこのオブジェクトのクラスにとって有効でない場合。
- InvalidTypeException- 値の型が変数の型に一致しない場合。
- ClassNotLoadedException- 変数の型が、適切なクラス・ローダーによってロードされていない場合。
- InvalidStackFrameException- このスタック・フレームが無効になっている場合。 フレームのスレッドが再開されると、スタック・フレームは無効になる。
- VMCannotBeModifiedException- VirtualMachineが読取り専用の場合(- VirtualMachine.canBeModified()を参照)。
 
- 
getArgumentValuesこのフレーム内のすべての引数の値を返します。 ローカル変数情報がない場合も、値が返されます。- 戻り値:
- このフレームの各引数のValueオブジェクトを含むリスト。引数は宣言された順に並べられる。 このフレームに対応するメソッドが引数を持たない場合、空のリストが返される。
- 例外:
- InvalidStackFrameException- このスタック・フレームが無効になっている場合。 フレームのスレッドが再開されると、スタック・フレームは無効になる。
- 導入されたバージョン:
- 1.6
 
 
-