调试 条件断点

来源:互联网 发布:淘宝为什么不卖彩票了 编辑:程序博客网 时间:2024/05/24 03:22

3.3 条件断点(Conditional Breakpoint)

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