人非聖賢,難免造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 停止執行程式中的當...