http://www.cnblogs.com/developersupport/p/visualstudio-debugging-tips.htmlhtml
VisualStudio是一個強大的調試工具,裏面不少隱藏功能少有人問津,可是在特定場景能夠節省你不少時間,本文主要介紹一些VisualStudio調試相關的隱藏功能,歡迎你們補充。算法
大多數人用Visual Studio在調試程序的時候先在程序開始的時候設置一個斷點,而後依次F10/F11到本身想要查看的邏輯。若是這個過程咱們須要仔細查看每一步的變量或者執行路徑,這樣作無可厚非,可是若是咱們不想關心前面執行的邏輯,咱們可使用Run to cursor功能,只須要鼠標指針點到你想要執行到的那一行代碼,Ctrl+F10,程序直接停在了鼠標指針的那行代碼。sass
斷點你們都會用,條件斷點相信對於常常調試的也不陌生,使用方法以下圖,多線程
看上面這個右鍵菜單,Hit Count估計不少人也再用,用它來指定在第幾回hit到這個斷點的時候斷下來,工具
接下來就更高級一些,Filter,相信不少人在調試多線程程序的時候都遇到過被其餘線程干擾吧,好不容易斷下來,一步一步F10,突然間另一個線程又把前面斷點hit了,剛纔我跳的線程是哪一個?想找到就難了。接下來就須要Filter來出場了。經過Filter咱們能夠過濾須要break的機器/進程/線程。學習
接下來就是When Hit選項了,這個估計不少人用過它來跟蹤變量,上圖,帶過。線程
Export, 導出斷點的功能用的就更少了,其實有些場景斷點導出可讓你少費不少話。好比你在某段代碼發現一個別人的bug,你能夠將斷點導出爲xml,而後將它attach到bug上,bug owner直接找到對應版本導入斷點,運行程序就能夠了。debug
調試的時候將鼠標放在變量名上來查看關心的數據,咱們都是這麼作的,可是若是一段邏輯須要反覆執行,例如調試某段算法,你能夠多點一下鼠標,將這個變量釘在代碼旁邊,這樣比去watch窗口看要少轉不少眼珠哦。指針
另外這些data tip也是能夠導入和導出的。調試
查看反彙編代碼能夠說是一個VisualStudio裏面的一個隱藏功能,這個功能不多有人會注意到,可是對於咱們想要學習彙編語言或者理解一些特定的編譯器行爲有很大的幫助。這個功能將彙編語言和源代碼參照顯示,理解起來容易許多。
使用該功能很簡單,以咱們在windbg u/uf/ub命令介紹中的程序代碼qsort.c爲例,在VisualStudio裏面打開程序,設置斷點,直接經過VisualStudio運行程序,或者attach到已經運行的程序中,當斷點被觸發後,右鍵而後選擇go to disassembly,
反彙編效果以下,接下來再看swap方法的彙編代碼,是否是很容易理解了?