5 個非常實用的 vs 調試技巧


5 個非常實用的 vs 調試技巧

前言

調試是一項非常重要的技能,熟練掌握調試技巧有助於我們快速解決問題。vs 是我們平時編寫代碼時的首選工具,相信也是大多數小伙伴兒的首選調試工具,因為實際操作起來太方便了,代碼編寫完,一個 F5 就可以愉快的調試了。今天我想向大家推薦幾個非常值得了解 vs 調試技巧。話不多說,我們開始吧。

並行堆棧

作用簡介:

我們可以通過調用堆棧窗口查看當前線程的調用棧,局限是只能查看某個線程的調用棧,要想查看每個線程的調用棧得切來切去的,太麻煩。如果我們想同時查看多個線程的調用情況,我們可以使用並行堆棧窗口。顧名思義,並行堆棧窗口可以同時查看多個線程的調用棧。如果程序中的某個線程死循環了,我們想確定是哪個,這時候可以中斷到 vs 中,然后打開並行堆棧窗口進行查看,基本上可以很快定位到出問題的代碼。

打開方式:

調試的時候,通過 調試 -> 窗口 -> 並行堆棧 即可打開。在 vs2013 中對應的快捷鍵是 ctrl + shift + d, s

注意是按住 ctrl + shift,再按 d,松開 ctrl, shift 后再按 s

parallel-stack
parallel-stack

說明:

我個人不太喜歡 vs 默認的中文翻譯,我認為調用堆棧,並行堆棧翻譯的並不准確,Call Stack 直譯為調用棧就很好,因為函數調用跟堆一點關系都沒有,而且 stack 直譯過來也是棧,heap 才是堆,不知道為什么會把調用棧翻譯成堆棧。希望有知道的小伙伴兒留言指點。

並行監視

作用簡介:

相信,大家經常使用監視窗口查看變量,當我們想查看每個棧幀的局部變量的時候,我們需要切換到對應棧幀才能看到對應的值,是不是比較麻煩?並行監視窗口了解下?

parallel-watch
parallel-watch

打開方式:

調試的時候,通過 調試 -> 窗口 -> 並行監視 -> 並行監視1/2/3/4 即可打開對應的並行監視窗口。和監視窗口一樣可以同時打開四個。

vs2013 中對應的快捷鍵是 ctrl + shift + d, 1/2/3/4 。注意是按住 ctrl + shift,再按 d,松開 ctrl, shift 后再按 1/2/3/4

parallel-watch-setting
parallel-watch-setting

自動窗口

作用簡介:

除了可以查看函數參數,局部變量的值意外,更有用的功能是查看函數調用的返回值。

auto-window
auto-window

打開方式:

調試的時候,通過 調試 -> 窗口 -> 自動窗口 即可打開。在 vs2013 中對應的快捷鍵是 ctrl + alt + v, s 。注意是按住 ctrl + alt,再按 v,松開 ctrl, alt 后再按 s

auto-window-setting
auto-window-setting

混合調試

作用簡介:

當我們需要調試的程序中有 .NET 代碼,也有 c++ 代碼時,開啟混合調試非常有必要。

打開方式:

通過 F5 調試時的設置方法。

debug-with-f5
debug-with-f5

通過附加進程進行調試時的設置方法。

attach-debug-setting
attach-debug-setting

務必注意: 有時候我們設置斷點不生效,可以檢查一下調試方式是否選對了。如果我們只想調試 C++ 代碼,可以只勾選 Native,如果只想調 .NET 代碼,可以根據實際情況勾選 Managed(v4.5, v4.0) 或者 Managed(v3.5, v3.0, v2.0),如果都想調那就都勾選。

使用斷點修改變量的值

作用簡介:

相信大家在調試的時候都設置過斷點,但是你是否知道我們可以在調試的時候通過斷點來改變變量的值?

調查問題時,想手動修改值來驗證一下我們的想法是否正確,但是又不想修改代碼,也不想中斷下來后,手動修改,因為可能需要手動修改 N 次,改過的小伙伴兒應該有體會。我們可以通過這個小技巧來自動幫我們改變變量的值。

use-breakpoint-modify-variable
use-breakpoint-modify-variable

注意:

1、 表達式不要加分號!!!

2、 高版本的 vs 才支持,vs2019 親測有效,其它版本沒測試。

注意事項:

1、 程序需要中斷到 vs 后,才能執行查看調用棧,觀察變量等操作。

2、 不需要的時候,請關閉並行堆棧等窗口,因為刷新信息對調試速度有一定影響,如果覺得 vs 調試速度慢了,可以關閉不必要的窗口。

3、 vs2013 中默認的快捷鍵設計的比較蛋疼,使用的時候需要注意。

總結

當然,還有很多很多其它調試技巧(包括上一篇文章中提到的 natvis),快捷鍵等等,后續會慢慢分享給大家。歡迎大家在群里多交流。

參考資料

https://docs.microsoft.com/en-US/visualstudio/debugger/debugger-tips-and-tricks?view=vs-2019


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM