再分享 5 個 vs 除錯技巧

2022-03-26 17:15:21 字數 2943 閱讀 2518

原總結

除錯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 停止執行程式中的當...