方法 : デバッガー内で式をウォッチする
[ウォッチ] ウィンドウと [クイック ウォッチ] ダイアログ ボックスには、デバッグ セッションでウォッチ対象とする変数名や式を入力できます。
[クイック ウォッチ] ダイアログ ボックスでは、同時に 1 つの変数または式を確認できます。1 つの値や、より大規模なデータ構造をすぐに確認できるので便利です。[ウォッチ] ウィンドウには、デバッグ セッションの過程で表示する変数や式をいくつか格納できます。Visual Studio の一部のエディションには複数の [ウォッチ] ウィンドウがあり、[ウォッチ 1] から [ウォッチ 4] までの番号が付けられています。
[ウォッチ] ウィンドウまたは [クイック ウォッチ] ウィンドウを開く方法の詳細については、「To display a variable window」を参照してください。
入力できる式のうち、最も単純なのは変数名です。ネイティブ コードをデバッグしている場合、変数名と同様にレジスタ名も使用できます。それだけでなく、より複雑な式も使用できます。たとえば、次の式を入力すると、3 つの変数の平均値を確認できます。
(var1 + var2 + var3) / 3
C# では、オブジェクト名の代わりに、オブジェクト ID やエイリアスを入力できます。
デバッガーの [ウォッチ] ウィンドウでは、有効な言語式であれば大部分が受け入れられます。詳細については、「デバッガー内の式」を参照してください。
ネイティブ コードでプログラミングしている場合、変数名や変数名を含む式のコンテキストを修飾することが必要になる場合があります。コンテキストとは、変数が配置される、関数、ソース ファイル、およびモジュールを指します。この場合、コンテキスト演算子の構文を使用できます。詳細については、「コンテキスト演算子 (C/C++ 言語式)」を参照してください。
プログラムの状態に影響を与える式
式を評価すると、変数の値が変わる場合や、プログラムの状態に影響が及ぶ場合があります。たとえば、次の式を評価すると、var1 の値が変わります。
var1 = var2
データを変更する式には、副作用があると言われます。副作用がある式を [ウォッチ] ウィンドウに入力すると、[ウォッチ] ウィンドウで式が評価されるたびに副作用が発生します。式に副作用があることに気付かないと、予期しない結果になることもあります。副作用がある式は、最初に入力したときに 1 回だけ評価されます。以降の評価は無効になります。値の横に表示される更新アイコンをクリックして、手動でこの動作をオーバーライドできます。
予期しない副作用は、多くの場合、関数を評価した結果に見られます。たとえば、次の関数呼び出しを [ウォッチ] ウィンドウに入力したとします。
Func1(var1)
[ウォッチ] ウィンドウまたは [クイック ウォッチ] で関数を呼び出すと、呼び出しによってデータが変更され、副作用が発生する可能性があります。関数の評価による予期しない副作用を回避するには、[オプション] ダイアログ ボックスで関数の自動的な評価をオフにする方法もあります。こうすると、プロパティなどの新しい言語機能が自動的に評価されることはなくなります。ただし、安全性は向上します。
[!メモ]
[ウォッチ] ウィンドウで式を確認すると、更新アイコンが表示されることがあります。緑色の円の中に、逆方向に弧を描いた 2 つの緑色の矢印のようなアイコンです。このアイコンは、自動的な関数評価をオフにしているときに、よく表示されます。更新アイコンが表示されると、エラーまたは古い値が存在することがわかります。詳細については、「方法 : ウォッチ値を再表示する」を参照してください。
ネイティブ コードと C# の場合、書式指定子を使用して、式の値の表示形式を指定できます。詳細については、「C++ の書式指定子」および「C# の書式指定子」を参照してください。
Visual Studio デバッガーでは、カスタム データ型は自動的に展開され、最も重要な要素が表示されます。カスタム データ型では、展開を追加します。詳細については、「カスタム データ型の表示」および「ビジュアライザー」を参照してください。
[!メモ]
実際に画面に表示されるダイアログ ボックスとメニュー コマンドは、アクティブな設定またはエディションによっては、ヘルプの説明と異なる場合があります。設定を変更するには、[ツール] メニューの [設定のインポートとエクスポート] をクリックします。詳細については、「Visual Studio の設定」を参照してください。
[ウォッチ] ウィンドウで式を評価するには
[ウォッチ] ウィンドウの [名前] 列で、空の行をクリックします。このとき、デバッガーは中断モードである必要があります。ウォッチする変数名または式を入力するか貼り付けます。
または
[ウォッチ] ウィンドウの行に変数をドラッグします。
ENTER キーを押します。
結果が [値] 列に表示されます。配列またはオブジェクト変数の名前を入力した場合は、[名前] 列の名前の横にツリー コントロールが表示されます。[名前] 列の変数を展開または縮小します。
[ウォッチ] ウィンドウの式は、削除しない限り残ります。
[クイック ウォッチ] の式を評価するには
[クイック ウォッチ] ダイアログ ボックスで、変数、レジスタ、または式を [式] ボックスに入力するか貼り付けます。
[再評価] をクリックするか、Enter キーを押します。
値が [現在の値] ボックスに表示されます。
配列またはオブジェクト変数の名前を [式] ボックスに入力すると、[現在の値] ボックスの名前の横にツリー コントロールが表示されます。[名前] 列の変数を展開または縮小します。
[クイック ウォッチ] で前の式を再評価するには
[クイック ウォッチ] ダイアログ ボックスで、[式] ボックスの右に表示される下向きの矢印をクリックします。
ドロップダウン リストで、前の式のいずれかを選択します。
[再評価] をクリックします。