這篇文章來源於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