什么是条件断点?
条件断点就是带有一个条件表达式的断点,在调试中,只有这个条件表达式为真时,程序到达断点时,才会暂停。
而对于普通的断点,只要程序到达该断点是,就会暂停。这个条件表达式必须能被调试器识别和求值,,比如说在watch窗口里
可以识别和求值的变量同样也可以在条件表达式里被识别和求值。这大大方便了我们调试某些问题,比如说,你在循环体内设置了
一个断点(1000次循环),而这个bug在循环到999次时才发生,你可以通过条件断点来设置循环到999次然后暂停。利用普通的
断点你不能实现这一点。
如何设置条件断点?
1. VC 6.0:
如图,先在你要设定断点的位置设置好断点,然后按alt + F9,弹出breakpoints对话框,如下图所示。
选中需要设置条件的断点,然后点击condition,然后就会出现break condition这个对话框,这个对话框就是设置条件断点的地方。
从上到下有三个输入框:
1. 输入一个表达式,当表达式的值发生变化时,断点会暂停,否则不暂停
2、设定查看的数组或是结构的需要watch的个数
3. 设置循环过多少次 才暂停。
这个例子中,设置循环999次后暂停,输入的值为999.注意,这个次数必须在合理范围内。否则就是失去了意义。
2. 对于VS2008:
先设置断点,按alt + F9,或者是从菜单(Debug->Window->breakoints),选中需要设置条件的断点,按右键,选中condition,然后出现以下对话框:
输入条件表达式,选中is true时,该条件表达式为true的时候,程序会break。
当选中has changed时,该表达式的值发生改变时,程序会break。
表达式可以是一个变量,也可以是一个常规表达式。(前提是可以被debugger识别和求值),可参照watch窗口。