Visual Studio 那些隱藏的調試功能

來源:互聯網
上載者:User

微軟互連網開發支援“

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

 

運行到游標(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方法的彙編代碼,是不是很容易理解了?

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.