调试可以深入程序内部,观察运行时各个变量的值。调试可以解决程序中出现的bug,同时还可以用来研究一些自己不太熟悉的语言特性和技术。下面说一些工作中遇到的VS2010调试技巧。 一、Ctrl+F10 运行到光标,快速执行到光标所在的代码处。
二、条件断点 设置断点后,右击断点即可进行条件断点设置。 1、断点条件 例如,在一个1000次的循环体内部设置断点,你希望当循环进行到900次后中断,怎么才能做到呢?随着Linq的出现,一行上复杂的表达式如何调试?在循环的大括号上插入断点,右击断点选择条件,在条件文本框输入i==900点击确定即可实现。
F5调试之后
例如还有,一个表达式在上面循环的某一次发生了变化,你想知道是哪一次,在哪个地方,怎么才能做到?同样通过设置条断点条件可以解决对表达式变化的跟踪。 string test = "朱利IT博客"; for (int i = 0; i < 1000; i++) { if (i == 900) { test = "www.zhuli8.com"; Console.WriteLine(i); } } 在循环体结束的位置我们设置一个断点,右击断点进行条件断点设置。
2、断点命中次数 例如,希望断点在被命中100次后中断怎样做?如何让断点在指定的命中次数或者大于某个次数时触发呢。这就是断点命中次数解决的问题。 设置一个断点,右击断点进行断点命中次数设置。
3、断点筛选器 例如,在调试一个服务程序时在其内部打上了断点,由于这是一个公用的服务不希望其他访问这个服务的程序被所设断点调试干扰,怎么办?断点筛选器就是限制只在某些进程和线程中设置断点。筛选器文本框中输入以下一个或多个子句,可以使用&(AND)、||(OR)、!(NOT)和圆括号组合这些子句描述应在何处设置断点的表达式,或者清除该表达式以便在所有进程和线程中设置断点。比如,希望断点只在被机器名为zhuli的机器访问时才触发,我们可以右击断点进行断点筛选器设置。当其他机器访问程序的时候断点不会触发,其他机器访问时感觉不到断点的存在。
4、命中断点时 例如,命中断点后输出一些内容,或者调用宏,比如输出一个程序中变量的值怎么办?命中断点时就出场了!命中断点时可以在消息中包含变量或其它表达式的值,但必须将它们置于大括号中,如"The value of x is {x}"。要插入大括号,请使用"\{";要插入反斜杠,请使用"\\"。设置一个断点,右击断点进行命中断点时设置。
输出窗口显示结果
原创博文,转载请注明出处:助力吧工作室 —http://www.zhuli8.com/ 文章地址:http://www.zhuli8.com/cxyh/Debugging.html