おそらく皆さんブレークポイントを設置して、
停止した状態でローカルウィンドウやウォッチウィンドウを見て確認するのではないでしょうか。
だけど、止めずに確認したい時もありませんか?
一時的な値ではなく変化を知りたい時はありませんか?
そんな時は printf 追加してプリントデバッグ!
という方法もありますが、再ビルドが必要なので時間がかかってメンドクサイです。
そこで、Visual Studio でソースを変更せず、ブレークポイントで停止させることもなく(※)、変数の値を出力させる方法を紹介します。(※ 内部的には停止している)
サンプルプログラム
int factorial(int n)
{
if( n == 0 ) return 1;
n = n * factorial(n-1);
return n;
}
int main(int, char**)
{
return factorial(10);
}
return n;のとこでの変数 n の値を出力します。
設定
まずは、ブレークポイントを設置します。次に、ブレークポイントの赤いマークを右クリックすると、
コンテキストメニューに「ヒット時(W)...」メニューがでるので選択します。

クリックするとダイアログが出るので、そちらの「メッセージを表示する(P)」にチェックを入れます。
下のエディットボックスに、ブレークポイントにヒットしたときに出力する文字列を入力します。

こちらには、通常の文字列以外に
| {x} | 式評価(中括弧の中に式) |
| $ADDRESS | 現在の命令アドレス |
| $CALLER | 呼び出し元関数名 |
| $CALLSTACK | 呼び出し履歴 |
| $FUNCTION | 現在の関数名 |
| $PID | プロセスID |
| $PNAME | プロセス名 |
| $TID | スレッドID |
| $TNAME | スレッド名 |
今回は変数 n の値が知りたいので、
{n}と入力しました。「続けて実行する(C)」にはチェックを入れておいてください。
これにチェックを入れておくと、ブレークポイントにヒットしても停止せずそのまま継続してくれます。
設定は以上です。
実行した結果がこちらになります。
ブレークポイントには他にも色々設定できるので試してみてください。
それでは!
0 件のコメント:
コメントを投稿