グローバル変数と同様に、ローカル変数はシンボル ファイルに格納されます。 また、グローバル変数と同様に、デバッガーは名前をアドレスとして解釈します。 グローバル変数と同じ方法で読み書きできます。 ただし、シンボルがローカルであることをコマンドに指示する必要がある場合は、 $!var
のように、シンボルの前にドル記号 ( $ ) と感嘆符 ( ! ) を付けます。
Visual Studio と WinDbg には、(コマンドに加えて) ローカル変数の表示と編集に使用できるユーザー インターフェイス要素が用意されています。 詳細については、「 WinDbg (クラシック) でのローカル変数の表示と編集」を参照してください。
次のメソッドを使用して、ローカル変数を表示、変更、および使用することもできます。
dv (ローカル変数の表示) コマンドは、すべてのローカル変数の名前と値を表示します。
!for_each_local拡張機能を使用すると、ローカル変数ごとに 1 回、1 つのコマンドを繰り返し実行できます。
ただし、ローカル変数とグローバル変数の主な違いは 1 つあります。 アプリケーションが実行されている場合、ローカル変数の意味はプログラム カウンターの場所によって異なります。このような変数のスコープは、定義されている関数にのみ拡張されるためです。
デバッガーは、ローカル コンテキストに従ってローカル変数を解釈 します。 既定では、このコンテキストはプログラム カウンターの場所と一致します。 ただし、デバッガーはコンテキストを変更できます。 ローカル コンテキストの詳細については、「ローカル コンテキスト」を参照してください。
ローカル コンテキストが変更されると、[ローカル] ウィンドウが直ちに更新され、ローカル変数の新しいコレクションが反映されます。 dv コマンドには、新しい変数も表示されます。 これらの変数名はすべて、前に説明したメモリ コマンドによって正しく解釈されます。 その後、これらの変数の読み取りまたは書き込みを行うことができます。