2

私はいくつかのコードをデバッグしていますが、文字列 (const char *) の文字が何かと等しい場合、毎回中断する必要があります。

だから私はそこにブレークポイントを置き、次のような条件を付けます: s[0] == 'e'. しかし、私がデバッグしているコードは CRT にあり、可能性があります。それs == 0は本当です。したがって、「空のポインターのアドレス指定」は何らかのエラーを引き起こすはずです。はい - 私はそこに条件を与えることができますがs != 0、それはそれほど楽しいものではありません:)

この条件を評価しようとすると、デバッガーは何をするのでしょうか? 内部でどのように動作しますか?明らかに、エラーが発生したり、このブレークポイントで停止したりすることはありませんs == 0

ご回答有難うございます。

4

1 に答える 1

3

試したことはありませんが、実行が停止すると思います。私の仮定はこれに基づいています:

If you set a breakpoint condition with invalid syntax, a warning message appears immediately. If you specify a breakpoint condition with valid syntax but invalid semantics, a warning message appears the first time the breakpoint is hit. In either case, the debugger breaks execution when the invalid breakpoint is hit. The breakpoint is skipped only if the condition is valid and evaluates to false.

ソース

于 2012-06-13T11:00:52.820 に答える