3.3 条件断点(Conditional Breakpoint)
假设你在多次迭代(循环)处理数据而你只想调试其中某几次迭代。这意味着你想根据某些特定条件暂停你的程序。Visual Studio断点允许你设置条件断点。当且仅当条件满足时,调试器才会停住。
首先,你需要在你想暂停执行处设置断点。然后右击红色的断点图标。右键菜单中点击”条件“。
![debug5_small](http://www.codeproject.com/KB/cs/MasteringInDebugging/debug5_small.png)
图: 设置断点条件(Set Breakpoint Condition)
点击右键菜单中的”条件“后,会弹出下面的对话框设置断点的条件。
![debug6](https://i-blog.csdnimg.cn/blog_migrate/2b593e95e8cdeb7cf2b20079ba4b76c2.png)
图: 断点条件设置
假设你要调试下面的代码块:
- class Program
- {
- static void Main(string[] args)
- {
- string [] strNames = { "Name1","Name2", "Name3", "Name4", "Name5", "Name6"};
- foreach(string name in strNames)
- {
- Console.WriteLine(name); // Breakpoint is here
- }
- }
- }
![debug7](https://i-blog.csdnimg.cn/blog_migrate/d959500ba9c09b229a6426e26856ccba.png)
图: 设置断点条件
查看断点符号。它应该看上去像是一个加(+)号在断点符号内部,这表示该断点是条件断点。
![debug9](https://i-blog.csdnimg.cn/blog_migrate/03c3b8563e094caf226256ed6a0bd528.png)
图: 条件断点符号(Conditional Breakpoint Symbol)
设置断点的条件之后,在调试程序,调试器只会在满足给定条件时才停住。
![debug10](https://i-blog.csdnimg.cn/blog_migrate/2b4c02056dfcaf0155c8d2e43cf69081.png)
图: 条件断点命中(Conditional Breakpoint hit)
条件输入框的自动补全(intellisense):上面给出的断点条件非常简单,可以非常容易的写到条件文本框中。有时你可能需要定义很大很复杂的条件。不必担心,VS为条件文本输入框也提供了自动补全功能。因此,在条件框中输入就像是在编辑器中一样方便。如下图。
![debug8_small](https://i-blog.csdnimg.cn/blog_migrate/4b06176caa4367a44a2cbc2be815bfd6.png)
图: 条件文本框的自动补全(intellisense in condition textbox)
我几乎讲解了条件断点的所有内容。除了下面这点。在条件窗口中有两个选项:
- Is True
- Has Changed
我们已经看到
”Is True“选项的用途了。
”Has Changed“用在当你想在某些值变为某些特定值的时候停住。