再分享 5 个 vs 调试技巧
前言
之前在《5 個非常實用的 vs 調試技巧》和《繼續分享 5 個實用的 vs 調試技巧》中分享了 10 個我認為非常值得了解的 vs 調試技巧,本周繼續分享 5 個很實用的調試技巧。
1. ?顯示下一條語句
在調試時,遇到斷點中斷后,為了更加清楚的了解程序邏輯,經常需要翻看調用棧,查看相關代碼。看完后,想快速返回到中斷的地方,之前基本上是通過以下兩種方法返回。
ctrl + alt + c 調出調用棧,然后雙擊最上方的棧幀來返回。
按一下 F11 讓程序運行一小步(有時候就進到函數里了,很不好)。
這兩種方法都比較麻煩。其實, vs 中有一個非常實用的功能,可以快速的回到中斷處。這個功能就是 顯示下一條語句。
中斷后, 右鍵,顯示下一條語句 即可顯示下一條語句。在 vs2013 中對應的快捷鍵是 alt + * 。
小貼士:alt + * 是小鍵盤上的 *。
2. 設置 symbol
不知道各位在調試的時候,有沒有遇到過 vs 特別慢的情況,跟卡死了一樣。很有可能是在加載符號。有兩個方法可以加速:
斷網。斷網后可以使加載符號的操作失敗的更快。但是會導致有些模塊的符號加載不上。
設置符號加載策略。可以只為特定模塊加載符號。通過 調試 -> 選項和設置 ,然后選擇 調試 -> 符號 即可設置。
說明:
如果愿意,可以隨時手動為特定模塊單獨加載符號。
可以通過 調試 -> 窗口(W) -> 模塊(O) 或者快捷鍵 Ctl + Alt + U 打開模塊列表界面。
然后在選中的模塊上 右鍵 -> 加載符號 即可。
3. ?調試子進程
windbg 有一個非常給力的功能就是調試子進程。當需要調試子進程的時候,不用手動附加到子進程了,而且不必擔心錯過子進程中的初始化代碼了。據我所知,vs 本身并不支持這項功能,需要使用官方提供的插件 —— Microsoft Child Process Debugging Power Tool[1]。該插件支持 vs2013~2019。
具體使用介紹 請參考 Introducing the Child Process Debugging Power Tool[2]
4. 偽變量
了解一些 vs 中的一些偽變量非常有必要。比如,當前進程的環境變量,命令行等信息。
| $err | 獲取 LastError 的值,等同于 GetLastError()。 |
| $err,hr | 帶文字解釋的 LastError。 |
| $env | 進程環境變量 |
| $cmdline | 命令行。 |
| $pid | 進程 ID |
| $tid | 當前線程 ID ,經測試,vs2013 不支持。 |
更多的偽變量請參考 Pseudovariables in the Visual Studio debugger[3]
5. 修飾符
不知道你是否曾經想在 vs 中查看 utf8 類型的字符串呢?是不是不太方便?其實,在 vs 中有一些觀察變量的修飾符,可以方便的按照一定的規則查看變量。簡單羅列幾個常用的修飾符,如下表:
| s8 | 按 UTF-8 顯示字符串 |
| su | 按 UTF-16 顯示字符串 |
| h (x) | 按 16 進制顯示數值 |
| d | 按 10 進制顯示數值 |
| c | 按字符顯示數值 |
| [size] | 把指針當成 size 大小的數組顯示 |
| expand(n) | 顯示第 n+1 個(索引從 0 開始)元素 |
更多的修飾符請參考 Format specifiers for C++ in the Visual Studio debugger[4]
結語
熟練掌握一些調試技巧,對提高調試效率有很大幫助。不知道今天介紹的這 5 個調試技巧,有沒有你喜歡的呢?
References:
[1]
Microsoft Child Process Debugging Power Tool: https://marketplace.visualstudio.com/items?itemName=vsdbgplat.MicrosoftChildProcessDebuggingPowerTool
[2]Introducing the Child Process Debugging Power Tool: https://devblogs.microsoft.com/devops/introducing-the-child-process-debugging-power-tool/
[3]Pseudovariables in the Visual Studio debugger: https://docs.microsoft.com/zh-cn/visualstudio/debugger/pseudovariables?view=vs-2019
[4]Format specifiers for C++ in the Visual Studio debugger: https://docs.microsoft.com/zh-cn/visualstudio/debugger/format-specifiers-in-cpp?view=vs-2019
感謝你的分享,點贊和在看
總結
以上是生活随笔為你收集整理的再分享 5 个 vs 调试技巧的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 跟我一起学.NetCore之熟悉的接口权
- 下一篇: 网络知识 | 《图解HTTP》读书笔记(