Visual Studio 那些隱藏的調試功能...

轉載自微軟互聯網開發支持

VisualStudio是一個強大的調試工具,裏面很多隱藏功能少有人問津,但是在特定場景可以節省你很多時間,本文主要介紹一些VisualStudio調試相關的隱藏功能,歡迎大家補充

運行到光標(Run to cursor)

大多數人用Visual Studio在調試程序的時候先在程序開始的時候設置一個斷點,然後依次F10/F11到自己想要查看的邏輯。如果這個過程我們需要仔細查看每一步的變量或者執行路徑,這樣做無可厚非,但是如果我們不想關心前面執行的邏輯,我們可以使用Run to cursor功能,只需要鼠標光標點到你想要執行到的那一行代碼,Ctrl+F10,程序直接停在了鼠標光標的那行代碼。


條件斷點(Conditional Breakpoint)

斷點大家都會用,條件斷點相信對經常調試的也不陌生,使用方法如下圖於

看上面這個右鍵菜單,Hit Count估計很多人也再用,用它來指定在第幾次hit到這個斷點的時候斷下來,



接下來就更高級一些,Filter,相信很多人在調試多線程程序的時候都遇到過被其他線程干擾吧,好不容易斷下來,一步一步F10,忽然間另外一個線程又把前面斷點hit了,剛纔我跳的線程是哪個?想找到就難了。接下來就需要Filter來出場了。通過Filter我們可以過濾需要break的機器/進程/線程。


接下來就是When Hit選項了,這個估計很多人用過它來跟蹤變量,上圖,帶過。


Export, 導出斷點的功能用的就更少了,其實有些場景斷點導出可以讓你少費很多話。比如你在某段代碼發現一個別人的bug,你可以將斷點導出爲xml,然後將它attach到bug上,bug owner直接找到對應版本導入斷點,運行程序就可以了。


數據提示(Data Tips)

調試的時候將鼠標放在變量名上來查看關心的數據,我們都是這麼做的,但是如果一段邏輯需要反覆執行,例如調試某段算法,你可以多點一下鼠標,將這個變量釘在代碼旁邊,這樣比去watch窗口看要少轉很多眼珠哦。


另外這些data tip也是可以導入和導出的


查看反彙編代碼

查看反彙編代碼可以說是一個VisualStudio裏面的一個隱藏功能,這個功能很少有人會注意到,但是對於我們想要學習彙編語言或者理解一些特定的編譯器行爲有很大的幫助。這個功能將彙編語言和源代碼參照顯示,理解起來容易許多。

使用該功能很簡單,以我們在windbg u/uf/ub命令介紹中的程序代碼qsort.c爲例,在VisualStudio裏面打開程序,設置斷點,直接通過VisualStudio運行程序,或者attach到已經運行的程序中,當斷點被觸發後,右鍵然後選擇go to disassembly,


彙編效果如下,接下來再看swap方法的彙編代碼,是不是很容易理解了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章