ローカル変数へのアクセス

ローカル変数はグローバル変数と同様、シンボル・ファイルに格納される。 グローバル変数と同様に、デバッガはその名前をアドレスとして解釈します。 グローバル変数と同じ方法で読み書きできます。 ただし、シンボルがローカルであることをコマンドに示す必要がある場合 は、シンボルの前にドル記号($)と感嘆符(!) $!varのようにします。

Visual Studio* と WinDbg には、ローカル変数の表示と編集に(コマンドの他に)使用で きるユーザー・インターフェース要素があります。 詳細については、WinDbg(Classic)でのローカル変数の表示と編集を参照してください。

ローカル変数を表示、変更、使用するには、以下の方法も使用できます:

  • dv(Display Local Variables)コマンドは、全てのローカル変数の名前と値を表示します。

  • for_each_localエクステンションを使うと、1つのコマンドをローカル変数ごとに繰り返し実行できます。

ただし、ローカル変数とグローバル変数には、1つだけ主な違いがあります。 アプリケーションの実行中、ローカル変数のスコープはその変数が定義されている 関数までしかないため、ローカル変数の意味はプログラム・カウンターの位置に依存し ます。

デバッガはローカル・コンテキストに従ってローカル変数を解釈します。 デフォルトでは、このコンテキストはプログラム・カウンターの位置と一致します。 しかし、デバッガはコンテキストを変更することができます。 ローカル・コンテキストの詳細については、「ローカル・コンテキスト」を参照してください。

ローカル・コンテキストが変更されると、Locals ウィンドウが直ちに更新され、新しいローカル変数のコレクションが反映されます。 dv コマンドも新しい変数を表示します。 これらの変数名はすべて、先に説明したメモリー・コマンドによって正しく解釈されます。 そして、これらの変数に対して読み書きができるようになります。