原總結
除錯vs2019
vs技巧
之前在 《5 個非常實用的 vs 除錯技巧》 和 《繼續分享 5 個實用的 vs 除錯技巧》中分享了10
個我認為非常值得了解的vs
除錯技巧,本週繼續分享5
個很實用的除錯技巧。
在除錯時,遇到斷點中斷後,為了更加清楚的了解程式邏輯,經常需要翻看呼叫棧,檢視相關**。看完後,想快速返回到中斷的地方,之前基本上是通過以下兩種方法返回。
ctrl + alt + c
調出呼叫棧,然後雙擊最上方的棧幀來返回。
按一下f11
讓程式執行一小步(有時候就進到函式裡了,很不好)。
這兩種方法都比較麻煩。其實,vs
中有乙個非常實用的功能,可以快速的回到中斷處。這個功能就是顯示下一條語句
。
中斷後,右鍵
,顯示下一條語句
即可顯示下一條語句。在vs2013
中對應的快捷鍵是alt + *
。
小貼士:不知道各位在除錯的時候,有沒有遇到過alt + *
是小鍵盤上的*
。
vs
特別慢的情況,跟卡死了一樣。很有可能是在載入符號。有兩個方法可以加速:
斷網。斷網後可以使載入符號的操作失敗的更快。但是會導致有些模組的符號載入不上。
設定符號載入策略。可以只為特定模組載入符號。通過除錯 -> 選項和設定
,然後選擇除錯 -> 符號
即可設定。
說明:
如果願意,可以隨時手動為特定模組單獨載入符號。
可以通過除錯 -> 視窗(w) -> 模組(o)
或者快捷鍵ctl + alt + u
開啟模組列表介面。
然後在選中的模組上右鍵 -> 載入符號
即可。
windbg
有乙個非常給力的功能就是除錯子程序
。當需要除錯子程序的時候,不用手動附加到子程序了,而且不必擔心錯過子程序中的初始化**了。據我所知,vs
本身並不支援這項功能,需要使用官方提供的外掛程式 —— microsoft child process debugging power tool。該外掛程式支援vs2013~2019
。
具體使用介紹 請參考 introducing the child process debugging power tool
了解一些vs
中的一些偽變數非常有必要。比如,當前程序的環境變數,命令列等資訊。
pseudovariables
function
$err
獲取lasterror
的值,等同於getlasterror()
。
$err,hr
帶文字解釋的lasterror
。
$env
程序環境變數
$cmdline
命令列。
$pid
程序 id
$tid
當前執行緒id
,經測試,vs2013
不支援。
更多的偽變數請參考 pseudovariables in the visual studio debugger
不知道你是否曾經想在vs
中檢視utf8
型別的字串呢?是不是不太方便?其實,在vs
中有一些觀察變數的修飾符,可以方便的按照一定的規則檢視變數。簡單羅列幾個常用的修飾符,如下表:
specifier
function
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
熟練掌握一些除錯技巧,對提高除錯效率有很大幫助。不知道今天介紹的這5
個除錯技巧,有沒有你喜歡的呢?
VS除錯技巧
介紹 除錯是軟體開發周期中的乙個很重要的部分,有時很有挑戰性,有時候則讓程式設計師迷惑,有時候讓程式設計師發瘋,但是。可以肯定的是,對於任何不是太那個微不足道的程式來說,除錯是不可避免的。近年來,除錯工具的發展已經使得很多除錯任務簡單省時了。本文總結了十個除錯技巧,當你使用vs的時候可以節省你很多時...
VS除錯技巧
f10 step over,逐過程執行,不進入到函式內,一般逐行執行用f10,如果有需要進入更具體的函式的,再用f11進入到函式,用shift f11出來 f11 step into,逐語句執行,會進入到函式內 也可以通過對呼叫的函式設定斷點進入到函式內 shift f11 step out,跳出當...
VS除錯技巧
1 快捷鍵總結 ctrl f5 開始執行,不除錯 f6 生成程式,主要檢查語法錯誤 f11 在執行進入函式呼叫後,逐條語句執行 f12 轉到定義 shift alt 框選 alt tab 選擇當前所有開啟的程式 shift f11 執行當前執行點所處函式的剩餘行 shift f5 停止執行程式中的當...