次の方法で共有


!for_each_frame

!for_each_frame 拡張機能は、現在のスレッドのスタック内のフレームごとにデバッガー コマンドを 1 回実行します。

!for_each_frame ["CommandString"] 
!for_each_frame -?

パラメーター

CommandString
フレームごとに 1 回実行するデバッガー コマンドを指定します。 CommandString に複数のコマンドが含まれる場合は、コマンドをセミコロンで区切って、CommandString を引用符で囲む必要があります。 複数のコマンドを含める場合、CommandString 内の個々のコマンドに引用符を含めることはできません。 CommandString 内で現在のフレームのインデックスを参照する場合は、$@frame 疑似レジスタを使用します。

-?
この拡張機能のヘルプ テキストをデバッガー コマンド ウィンドウに表示します

DLL

Ext.dll

追加情報

ローカル コンテキストの詳細については、「コンテキストの変更」を参照してください。

解説

引数を指定しない場合、!for_each_frame 拡張機能はすべてのフレームとそのフレーム インデックスのリストを表示します。 すべてのフレームの詳細なリストを表示するには、k (スタック バックトレースの表示) コマンドを使用します。

k コマンドは最大 256 フレームまで歩きます。 列挙されたフレームごとに、そのフレームが一時的に現在のローカル コンテキストになります (.frame (ローカル コンテキストの設定) コマンドと同様)。 コンテキストが設定された後、CommandString が実行されます。 すべてのフレームが使用されると、ローカル コンテキストは !for_each_frame 拡張機能を使用する前の値にリセットされます。

CommandString を含めると、デバッガーは、そのフレームに対してコマンドが実行される前に、フレームとそのインデックスを表示します。

次のコマンドは、現在のスタックのすべてのローカル変数を表示します。

!for_each_frame !for_each_local dt @#Local