分享5個實用的vs調(diào)試技巧
并行堆棧
作用簡介:
我們可以通過調(diào)用堆棧窗口查看當(dāng)前線程的調(diào)用棧,局限是只能查看某個線程的調(diào)用棧,要想查看每個線程的調(diào)用棧得切來切去的,太麻煩。如果我們想同時查看多個線程的調(diào)用情況,我們可以使用并行堆棧窗口。顧名思義,并行堆棧窗口可以同時查看多個線程的調(diào)用棧。如果程序中的某個線程死循環(huán)了,我們想確定是哪個,這時候可以中斷到 vs 中,然后打開并行堆棧窗口進(jìn)行查看,基本上可以很快定位到出問題的代碼。
打開方式:
調(diào)試的時候,通過 調(diào)試 -> 窗口 -> 并行堆棧 即可打開。在 vs2013 中對應(yīng)的快捷鍵是 ctrl + shift + d, s 。
注意是按住 ctrl + shift,再按 d,松開 ctrl, shift 后再按 s。
說明:
我個人不太喜歡 vs 默認(rèn)的中文翻譯,我認(rèn)為調(diào)用堆棧,并行堆棧翻譯的并不準(zhǔn)確,Call Stack 直譯為調(diào)用棧就很好,因為函數(shù)調(diào)用跟堆一點關(guān)系都沒有,而且 stack 直譯過來也是棧,heap 才是堆,不知道為什么會把調(diào)用棧翻譯成堆棧。希望有知道的小伙伴兒留言指點。
并行監(jiān)視
作用簡介:
相信,大家經(jīng)常使用監(jiān)視窗口查看變量,當(dāng)我們想查看每個棧幀的局部變量的時候,我們需要切換到對應(yīng)棧幀才能看到對應(yīng)的值,是不是比較麻煩?并行監(jiān)視窗口了解下?
打開方式:
調(diào)試的時候,通過 調(diào)試 -> 窗口 -> 并行監(jiān)視 -> 并行監(jiān)視1/2/3/4 即可打開對應(yīng)的并行監(jiān)視窗口。和監(jiān)視窗口一樣可以同時打開四個。
在 vs2013 中對應(yīng)的快捷鍵是 ctrl + shift + d, 1/2/3/4 。注意是按住 ctrl + shift,再按 d,松開 ctrl, shift 后再按 1/2/3/4。
自動窗口
作用簡介:
除了可以查看函數(shù)參數(shù),局部變量的值意外,更有用的功能是查看函數(shù)調(diào)用的返回值。
打開方式:
調(diào)試的時候,通過 調(diào)試 -> 窗口 -> 自動窗口 即可打開。在 vs2013 中對應(yīng)的快捷鍵是 ctrl + alt + v, s 。注意是按住 ctrl + alt,再按 v,松開 ctrl, alt 后再按 s。
混合調(diào)試
作用簡介:
當(dāng)我們需要調(diào)試的程序中有 .NET 代碼,也有 c++ 代碼時,開啟混合調(diào)試非常有必要。
打開方式:
通過 F5 調(diào)試時的設(shè)置方法。
通過附加進(jìn)程進(jìn)行調(diào)試時的設(shè)置方法。
務(wù)必注意: 有時候我們設(shè)置斷點不生效,可以檢查一下調(diào)試方式是否選對了。如果我們只想調(diào)試 C++ 代碼,可以只勾選 Native,如果只想調(diào) .NET 代碼,可以根據(jù)實際情況勾選 Managed(v4.5, v4.0) 或者 Managed(v3.5, v3.0, v2.0),如果都想調(diào)那就都勾選。
使用斷點修改變量的值
作用簡介:
相信大家在調(diào)試的時候都設(shè)置過斷點,但是你是否知道我們可以在調(diào)試的時候通過斷點來改變變量的值?
調(diào)查問題時,想手動修改值來驗證一下我們的想法是否正確,但是又不想修改代碼,也不想中斷下來后,手動修改,因為可能需要手動修改 N 次,改過的小伙伴兒應(yīng)該有體會。我們可以通過這個小技巧來自動幫我們改變變量的值。
注意:
1、 表達(dá)式不要加分號?。?!
2、 高版本的 vs 才支持,vs2019 親測有效,其它版本沒測試。
注意事項:
1、 程序需要中斷到 vs 后,才能執(zhí)行查看調(diào)用棧,觀察變量等操作。
2、 不需要的時候,請關(guān)閉并行堆棧等窗口,因為刷新信息對調(diào)試速度有一定影響,如果覺得 vs 調(diào)試速度慢了,可以關(guān)閉不必要的窗口。
3、 vs2013 中默認(rèn)的快捷鍵設(shè)計的比較蛋疼,使用的時候需要注意。
總結(jié)
當(dāng)然,還有很多很多其它調(diào)試技巧(包括上一篇文章中提到的 natvis),快捷鍵等等,后續(xù)會慢慢分享給大家。歡迎大家在群里多交流。
參考資料
https://docs.microsoft.com/en-US/visualstudio/debugger/debugger-tips-and-tricks?view=vs-2019
以上就是分享5個實用的vs調(diào)試技巧的詳細(xì)內(nèi)容,更多關(guān)于vs調(diào)試技巧的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
uniApp微信小程序使用騰訊地圖定位功能及getLocation需要在app.json中聲明permission字段問
這篇文章主要介紹了uniApp微信小程序使用騰訊地圖定位功能及getLocation需要在app.json中聲明permission字段問題解決,需要的朋友可以參考下2022-12-12聊聊自學(xué),那些讓你事半功倍的自學(xué)資源(干貨分享)
B站是一個學(xué)習(xí)網(wǎng)站。一入B站深似海,從此游戲是路人。B站雖然視頻資源多,但是內(nèi)容也是五花八門、參差不齊,本文給大家收集了關(guān)于學(xué)習(xí)計算機編程的視頻,這里有我曾經(jīng)的入門視頻,也有跟朋友交流獲得的,特此篩選了下面這些視頻,分享給大家2021-04-04DLL(Dynamic Linkable Library) 詳解說明
DLL文件(Dynamic Linkable Library 即動態(tài)鏈接庫文件),是一種不能單獨運行的文件,它允許程序共享執(zhí)行特殊任務(wù)所必需的代碼和其他資源2008-12-12一文讀懂modbus slave和modbus poll使用說明
modbus poll和modbus slave是一款實用的modbus開發(fā)和調(diào)試工具,可以非常方便的進(jìn)行modbus調(diào)試,是非常有用的Modbus主機/從機模擬程序,這篇文章給大家介紹modbus slave和modbus poll使用說明,感興趣的朋友一起看看吧2021-04-04