一个好的调试器,能够帮助程序员处理很多自动化的工作。试想下列的情形:
1. 错误是发生在一个循环当中,只在循环遍历了若干次以后,才会出现。
2. 错误只在程序中某个变量为一个特定的值,才会出现,而这个变量的值是在程序运行的过程中随机设置的。
3. 多个线程都要调用同一个函数,而你只想在某几个线程执行这个函数的时候,中断程序的执行。
在上面列出来几种情况当中,如果调试器不能提供一个有效的方法帮助我们设置断点的话,调试这种程序将会是很痛苦的一件事。在第一种情况当中,用户不得不在循环中设置断点,并且要记住自己按下F5的次数,1,2,3…,499,300,301…。第二种情况下,用户还得靠一些运气成分才能发现错误原因。
CLR Debugger的开发人员正是考虑到以上情形,给CLR Debugger添加了这些功能,条件断点(Conditional Breakpoint)和断点过滤器(Breakpoint Filters)。
设置条件断点非常容易。在特定的行上,按F9设置断点。
然后右击断点–编辑窗口左侧的红点,在上下文菜单上选择“Condition…”。
这时弹出一个对话框供你设置激活该断点所需的条件。比如:我们希望只有当局部变量paginatedDinners的尺寸小于10时,调试才中断。我们可以写出如下的表达式:
现在我再运行这个程序,实现搜索,只有返回值小于10时ÿ