.f+ コマンドは、フレーム インデックスを現在のスタック内の次のフレームにシフトします。 .f- コマンドは、フレーム インデックスを現在のスタック内の前のフレームにシフトします。
.f+
.f-
環境
アイテム | 説明 |
---|---|
モード | ユーザー モード、カーネル モード |
目標値 | ライブ、クラッシュ ダンプ |
プラットフォーム | すべて |
追加情報
ローカル コンテキストおよびその他のコンテキスト設定の詳細については、「コンテキストの変更」を参照してください。 ローカル変数およびその他のメモリ関連コマンドを表示する方法の詳細については、「メモリの読み取りと書き込み」を参照してください。
解説
フレームは、デバッガーがローカル変数を解釈するために使用するローカル コンテキスト (スコープ) を指定します。
.f+ および .f- コマンドは、現在のスタック内の次のフレームと前のフレームに移動するためのショートカットです。 これらのコマンドは次の .frame コマンドと同等ですが、.f コマンドは便宜上短くされています。
.f+ は .frame $@frame + 1 と同じです。
.f- は .frame $@frame - 1 と同じです。
ドル記号 ($) は、フレーム値を擬似レジスタとして識別します。 アットマーク (@) を使用すると、文字列がレジスタまたは擬似レジスタであることがデバッガに通知されるため、デバッガはより迅速に値にアクセスできます。
アプリケーションの実行中、ローカル変数の意味はプログラム カウンターの位置によって異なります。これは、ローカル変数のスコープが、それらが定義されている関数にのみ拡張されるためです。 .f+ または .f- コマンド (または .frame コマンド) を使用しない限り、デバッガーは現在の関数のスコープ (スタック上の現在のフレーム) をローカル コンテキストとして使用します。
フレーム番号は、スタック トレース内のスタック フレームの位置です。 このスタック トレースは、k、kb、kc、kd、kp、kP、kv (スタック バックトレースの表示) コマンドまたは [コール] ウィンドウを使用して表示できます。 最初の行 (現在のフレーム) はフレーム番号 0 を表します。 後続の行は、フレーム番号 1、2、3 などを表します。
ローカル コンテキストを別のスタック フレームに設定して、新しいローカル変数情報を表示できます。 ただし、使用できる実際の変数は、実行されるコードによって異なります。
プログラムの実行が発生すると、デバッガーはローカル コンテキストをプログラム カウンターのスコープにリセットします。 レジスタ コンテキストが変更されると、ローカル コンテキストは最上位のスタック フレームにリセットされます。