変数と式を監視する

ウォッチ ウィンドウを使用して、プログラムのデバッグ中に監視する変数と式を指定します。ウォッチ ウィンドウ内で変数の値を修正することもできます。

ウォッチ ウィンドウには、[ウォッチ 1]、[ウォッチ 2]、[ウォッチ 3]、および [ウォッチ 4] の 4 つのタブがあります。それぞれのタブでは、ユーザーが指定した変数と式の一覧がスプレッドシート フィールド内に表示されます。一緒に監視したい変数を同じタブ内にグループ化することができます。たとえば、特定のウィンドウに関する変数を 1 つのタブにまとめ、特定のダイアログ ボックスに関する変数を別のタブにまとめておきます。このようにすると、ウィンドウをデバッグするときは最初のタブを、ダイアログ ボックスをデバッグするときは 2 番目のタブを監視することができます。

ウォッチ ウィンドウに配列変数、オブジェクト変数、または構造体変数を追加すると、[シンボル名] 列にプラス記号 (+) またはマイナス記号 (-) のボックスが表示されます。このボックスを使って、変数の表示を展開または折りたたむことができます。

変数の値が赤で表示された場合は、値が最近変更されたことを示しています。最後に変更した値だけが赤で表示されます。

注意   赤は既定の色です。色を変更するには、[ツール] メニューの [オプション] をクリックし、[書式] タブをクリックします。[書式] タブの [色] ボックスで強調表示項目の 1 つ、たとえば [値の強調表示] をクリックし、[前景] ボックスで新しい色をクリックして、[OK] をクリックします。

変数が、オブジェクト、またはオブジェクトへの参照あるいは C++ ポインタの場合、ウォッチ ウィンドウでは、変数が自動的に展開されて、最重要データを最上位層に表示します。たとえば、次の C++ オブジェクトがあるとします。

  CString String  =   {...}
char *   m_pchData =0x7ffdf000 "abc"
   int          m_nDataLength=4
   int          m_nAllocLength=1244628

ウォッチ ウィンドウには次のように表示されます。

  String  =   {"abc"}

変数が、オブジェクトへの参照または C++ ポインタの場合、ウォッチ ウィンドウでは、参照やポインタは自動的にダウンキャストされ、展開されたオブジェクトにメンバが追加されます。この追加メンバは、基本クラスのように見えますが、派生したサブクラスです。たとえば、CObject への C++ ポインタであると宣言された変数が実際は CComboBox を指している場合、ウォッチ ウィンドウではこれが認識され、メンバを追加して、CComboBox メンバにアクセスできるようにします。

ウォッチ ウィンドウには、既定の形式で値が表示されます。書式指定文字を使って、表示形式を変更することができます。次の例は、16 進値 x を Unicode 文字として指定するためのコマンドを示しています。

  x,su 

現在のプロセスのグローバル変数のほかに、コンテキスト演算子で名前を限定すると、ロードされているどのモジュールのグローバル変数でも調べられます。たとえば、現在のプロセスが何であるかにかかわらず、ウォッチ ウィンドウでコマンドを入力すると、カーネル内の ProcArray 構造体を調べることができます。次のコードは、その例を示しています。

  {,,nk.exe}ProcArray

スレッド アドレスをキャストすることにより、モジュールを表示することができます。[プロセス] コマンド出力からの Shell.exe プロセスのスレッド構造体を確認するには、ウォッチ ウィンドウ内にコマンドを入力します。プロセス アドレスが 0:0x08cbe0a5 の場合のコード サンプルは次のとおりです。

  (PTHREAD)0:0x08cbe0a5c

ウォッチ ウィンドウには、変数の型情報は表示されません。型情報は、ウィンドウのプロパティ ページで参照することができます。

IDE での手順

ウォッチ ウィンドウで、変数または式の値、またはレジスタの内容を表示するには

クイック ウォッチを使って、変数または式の値、またはレジスタの内容を表示するには

関連項目

ウォッチ変数の書式指定文字

スプレッドシート フィールド