一个好的调试器,能够帮助程序员处理很多自动化的工作。试想下列的情形:
1. 错误是发生在一个循环当中,只在循环遍历了若干次以后,才会出现。
2. 错误只在程序中某个变量为一个特定的值,才会出现,而这个变量的值是在程序运行的过程中随机设置的。
3. 多个线程都要调用同一个函数,而你只想在某几个线程执行这个函数的时候,中断程序的执行。
在上面列出来几种情况当中,如果调试器不能提供一个有效的方法帮助我们设置断点的话,调试这种程序将会是很痛苦的一件事。在第一种情况当中,用户不得不在循环中设置断点,并且要记住自己按下F5的次数,1,2,3…,499,300,301…。第二种情况下,用户还得靠一些运气成分才能发现错误原因。
CLR Debugger的开发人员正是考虑到以上情形,给CLR Debugger添加了这些功能,条件断点(Conditional Breakpoint)和断点过滤器(Breakpoint Filters)。
1.1.1. 根据断点的触发次数中断程序的执行
条件断点允许你设置程序在断点处中断的条件,你可以设置断点在触发若干次以后,调试器才中断程序的执行,也可以设置调试器根据一条返回布尔值的语句来中断程序的执行。我将以下面的程序为例,讲解如何设置条件断点:
1 2 3 |