这篇文章来源于http://damieng.com/blog/2014/02/05/8-visual-studio-debugging-tips-debug-like-a-boss,本文在原文翻译的基础上增长一些我我的的经验,但愿对读者有帮助。html
VS中插入断点有多种类型,例如Hit Count,Condition,Location或者仅仅是一个断点,这里先给你们演示一个插入Lambda表达式的例子。函数
在 var a = items 这条语句上插入一个条件断点,而后输入一个针对a的Lambda表达式:来判断a的集合中是否含有i==30的项,若是存在则中断程序。在实际调试程序的时候咱们须要在特定值时中断程序或者判断列表(或IEnumerable)中是否含有特定项。这里,Condition中不只能够输入Lambda表达式,更能够输入任何类型或字符串,不过这都限制在a这个对象的范围内。visual-studio
题外话说一下,在VS中还能够加入Tracepoint,此断点的做用是当执行到设置断点的位置时,输出用户预设的输出字符串,VS还提供了一些环境变量$PID,$PNAME等,最后会在VS的OutPut输出窗口展现出来(上图中的菱形断点)。有兴趣的同窗本身操做下。ui
在VS中Output窗口是一个很是方便的窗口,便于程序调试,您能够用Debug.WriteLine(XXXX)直接输出信息至Output窗口。您还能够定制输出类型,有些如Process Exit Message在一些时候就不需要输出,取消掉便可。url
原文做者标示了这个功能是在VS2012下,其实这个功能在08的时候就已经有了。(05是否有这个功能还不知道,也许咱们没必要去纠结05)spa
这里不想多说了,你们操做一下就知道了:在项目工程上更改项目为多项目输出便可,同时设置输出项目。翻译
当你负责编写API或者SKD的时候建立一个简单的应用程序,使用你的东西在一个小而独立的环境下。你能够经过FILE---》Export Template功能导出当前项目的模板。debug
网上有不少介绍,类模板或项目模板的文章,这里不详细解释。调试
我我的的类模板htm
当前有不少断点,其中一些想暂时取消,而另外一些继续做用,这回就要用到断点管理界面了(Ctrl+Alt+B),其中能够勾选一些可用的,和取消勾选一些暂时不想用的。
在方法中加入“可选参数”,这样在不破坏原有任何方法的基础上针对特定方法进行扩展,方便调试。
[CallerMemberName]在不一样方法中显示的值是不一样的,在调试中所能定义的内容并很少。
详情请参考:http://msdn.microsoft.com/zh-cn/library/hh551816.aspx
在以前的VS调试器运行方法时,除监视方法(Watch对象或方法)时,默认是不保存变量结果的,这样咱们在调试的时候很不方便,固然你能够用即时窗口,从新运行一次方法。如今有了一种更简便的方式来监视函数输出值:Autos Window(Ctrl+D,A),前提条件是,当前在调试运行环境下。
Step 1:在方法上设置断点。
Step 2:F10让该语句执行完毕
Step 3:查看Autos Window中的返回值。
这里要强调不是res的值能保存,而是内嵌的方法的返回值。
但愿以上内容对您有帮助 :)
http://damieng.com/blog/2014/02/05/8-visual-studio-debugging-tips-debug-like-a-boss
http://www.hanselman.com/blog/DownloadVisualStudio2013WhileYourFeedbackStillMatters.aspx
http://msdn.microsoft.com/zh-cn/library/hh551816.aspx
http://msdn.microsoft.com/zh-cn/library/system.diagnostics.debuggerdisplayattribute.aspx