Visual Studio 除錯功能(一)

2021-06-20 16:09:58 字數 1109 閱讀 6509

原文出處: 

微軟網際網路開發支援

大多數人用visual studio在除錯程式的時候先在程式開始的時候設定乙個斷點,然後依次f10/f11到自己想要檢視的邏輯。如果這個過程我們需要仔細檢視每一步的變數或者執行路徑,這樣做無可厚非,但是如果我們不想關心前面執行的邏輯,我們可以使用run to cursor功能,只需要滑鼠光標點到你想要執行到的那一行**,ctrl+f10,程式直接停在了滑鼠游標的那行**。

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

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

接下來就更高階一些,filter,相信很多人在除錯多執行緒程式的時候都遇到過被其他執行緒干擾吧,好不容易斷下來,一步一步f10,忽然間另外乙個執行緒又把前面斷點hit了,剛才我跳的執行緒是哪個?想找到就難了。接下來就需要filter來出場了。通過filter我們可以過濾需要break的機器/程序/執行緒。

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

export, 匯出斷點的功能用的就更少了,其實有些場景斷點匯出可以讓你少費很多話。比如你在某段**發現乙個別人的bug,你可以將斷點匯出為xml,然後將它attach到bug上,bug owner直接找到對應版本匯入斷點,執行程式就可以了。

除錯的時候將滑鼠放在變數名上來檢視關心的資料,我們都是這麼做的,但是如果一段邏輯需要反覆執行,例如除錯某段演算法,你可以多點一下滑鼠,將這個變數釘在**旁邊,這樣比去watch視窗看要少轉很多眼珠哦。

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

檢視反彙編**可以說是乙個visualstudio裡面的乙個隱藏功能,這個功能很少有人會注意到,但是對於我們想要學習組合語言或者理解一些特定的編譯器行為有很大的幫助。這個功能將組合語言和源**參照顯示,理解起來容易許多。

使用該功能很簡單,以我們在windbg u/uf/ub命令介紹中的程式**qsort.c為例,在visualstudio裡面開啟程式,設定斷點,直接通過visualstudio執行程式,或者attach到已經執行的程式中,當斷點被觸發後,右鍵然後選擇go to disassembly,

反彙編效果如下,接下來再看swap方法的彙編**,是不是很容易理解了?

那些VisualStudio隱藏的除錯功能

大多數人用visual studio在除錯程式的時候先在程式開始的時候設定乙個斷點,然後依次f10 f11到自己想要檢視的邏輯。如果這個過程我們需要仔細檢視每一步的變數或者執行路徑,這樣做無可厚非,但是如果我們不想關心前面執行的邏輯,我們可以使用run to cursor功能,只需要滑鼠指標點到你想...

visual studio除錯技巧

講的是windows除錯技巧,學習了。自認為學的不錯了,還有這些技巧呢 巧用vc監視進行 除錯的三個技巧 author zhangguanshi 1 如果要檢視系統函式的最後錯誤,可以在監視中輸入 err,然後使用vc的工具error lookup,輸入監視中的右邊的數字,就能查出最後出的是什麼錯了...

Visual Studio 除錯技巧

第二次碰到這個問題了,真的是煩,記憶力是這麼差勁嗎?一定不能再犯第三次了。最近一直在用vs 除錯windows下公司某個服務下的一些dll。今天開了服務後,用vs鏈結process後,跟著 一步一步走的時候,發現有些函式無法跟進去,紅色的斷點號顯示的是白色的。導致相關的命令一直沒有發出去。艱難。後來...