VS除錯技巧資料

2021-09-30 17:03:17 字數 1842 閱讀 8474

人非聖賢,難免造bug,似我等愚人,bug會特別多。。與bug大軍們惡戰幾百回合後,終於發現,好的除錯技巧是解決掉bug的絕妙**(難得開竅)。總之,工欲善其事,必先利其器。

回歸正題,下面整理一些vs的除錯技巧資料。

1. 熱心網友們關於watch, memory, output, breakpoint, call stack等的介紹

2. 常用快捷鍵

3. 雜七雜八的除錯小心得(介面可參見上述**)

(1)關於快捷鍵

快捷鍵是可以自行設定的,不過乙個個設定實在是太麻煩了。幸好vs有預設的快捷鍵設定,可參照以下**恢復vs的預設環境設定,根據自己的需要選擇設定集合,比如我就習慣了用visual c++工具集合。

(中文版)

(英文版)

(2)關於output視窗

編譯和重編譯(build&rebuild)的結果都在output視窗顯示。通常會先看最後一行,succeed or failed,成敗都看它了。

0 failed 當然是最理想的結果啦,這說明**至少在語法上沒有被檢查出錯誤,可以繼續debug看看資料結果有沒有問題。

如果顯示非零falied的話,也不用慌。在output視窗向上翻頁找關鍵字error,雙擊該句錯誤說明就可跳轉到指定位置進行修改。感覺挺人性化的,有木有?假如它只告訴你有錯,卻傲嬌地不告訴你在**,當**規模較大的時候,可就麻煩了。像我這樣的造bug專業戶,大概會棄療。。

output視窗還會顯示很多的warning(警告),最理想的情況是no warning , 但是有warning也不會影響**的執行,只是看著比較心煩,可參照以下**遮蔽掉warning。不遮蔽的好處大概是可以檢驗自己的**是不是足夠符合**規範(我對這個不太了解,一向不怎麼關注)。

(3)關於memory視窗

first, 到**調出memory視窗呢?

除錯狀態下,找到工具欄的debug -> windows -> memory,裡面有4個memory視窗任君選。

second,memory視窗有啥用呢?

可以通過memory視窗檢視記憶體中的資料。當除錯物件涉及到陣列的時候,用起來比監視視窗(watch)方便多了。另外,有時記憶體中資料的擺放順序對程式的正確性起著至關重要的作用,例如加解密演算法。

(4)關於watch視窗

監視視窗,想必大家都很熟悉了,也是在除錯狀態下可見。程式執行到斷點處時,可以用來檢視中間變數的值,還可以進行一些簡單的運算,加減乘除啥的。其顯示的數值可以是十進位制數,也可以是十六進製制數,在顯示數值一列單擊右鍵可進行切換。

(5)關於call stack視窗

堆疊視窗,除錯狀態下可見,看大型**的時候非常有用。可以看到當前函式被逐級呼叫的情況,並跳轉到各級呼叫函式,有助於分析和掌握**的結構。

(6)關於breakpoints視窗

斷點視窗,除錯狀態下可見,上面會清楚地列出所有打了斷點的地方,方便管理和清除斷點。

(7)關於指標的使用

定義指標時或者棄置不用時最好賦值為null,避免誤用野指標,導致程式出錯。譬如,報錯出現「debug assertion failed!」通常都是亂用野指標導致的。

(8)關於**效能分析

操作示範如下:

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