Visual Studio Debug實戰(zhàn)教程之基礎入門
前言
在過去,我已經寫過好幾篇關于調試 / debug / 解 Bug 的文章,但都是從宏觀的角度上去講的,并沒有針對哪種工具做具體深入的剖析。
在軟件開發(fā)周期中,測試和修正缺陷(defect,defect與bug的區(qū)別:Bug是缺陷的一種表現形式,而一個缺陷是可以引起多種Bug的)的時間遠多于寫代碼的時間。通常,debug是指發(fā)現缺陷并改正的過程。修正缺陷緊隨debug之后,或者說二者是相關的。如果代碼中存在缺陷,我們首先要識別造成缺陷的根本原因(root cause),這個過程就稱作調試(debugging)。找到根本原因后,就可以修正缺陷。
工欲善其事,必先利其器,一個強大的調試工具可以幫助我們快速的發(fā)現問題、解決問題。而能不能很好的利用這些工具則是菜鳥程序員和高手程序員在工作方法上的一大區(qū)別。
所以,接下來,我打算從我最熟悉也是用戶體量最大的 Visual Studio 開始入手,動手寫關于 Debug 的系列教程。
Visual Studio提供了很多用于調試的工具。有時調試需要花費大量時間去識別root cause。VS提供了許多輔助調試的便捷的工具。調試器(Debugger)包含錯誤列表、添加斷點、可視化的程序流程、控制執(zhí)行流程、Data Tips、監(jiān)視窗口(watch windows)、多線程調試、線程窗口、并行調試概覽以及IntelliTrace調試概覽。我希望本文能夠對調試功能的使用者有所裨益。
雖說 MSDN 上已經啥都有了,但是赤裸裸的英文世界還是擋住了不少的開發(fā)者,這里我希望能用最平實易懂的語言讓大家快速上手 VS 的調試功能。
它適用于 C#,C/C ++,Visual Basic,JavaScript 等大部分 VS 支持的編程語言。
說明一下,此教程主要參考 MSDN,但同時也添加了我自身在使用過程中積累的一些經驗。
好了,廢話不多說,進入主題。
本次教程將介紹 Visual Studio 入門階段的一些 Debug 功能。
與大多數 IDE 一樣,Visual Studio 有兩個調試階段:
- 一是發(fā)現并解決 Build 過程中的項目和編譯錯誤。
- 二是發(fā)現并解決 Run 過程中的動態(tài)錯誤。
Build 階段
Build Solution
Build 一個 Solution 先從配置開始。
Solution 的配置有兩種基本類型: Debug 和 Release。
它們的區(qū)別如下:
Debug | Release |
生成的可執(zhí)行文件未經優(yōu)化,大而慢,內含開發(fā)人員添加的調試信息,不會被投入市場使用。 | 生成的可執(zhí)行文件經過了優(yōu)化,小而快,可以被投入市場使用。 |
默認配置為 Debug。
除此之外,還可以指定目標平臺,如 x86(32 位 Intel CPU)、x64(64 位 Intel CPU)和 ARM(ARM CPU,僅支持某些應用類型)。
若要更改此值,請單擊平臺下拉列表,選擇其他平臺或「配置管理器...」
配置好工程之后,就可以開始 Build 了。
最簡單的方法是按下 F7,也可以在菜單中選擇 Build Solution。
2、Output 窗口
Build 過程及其結果將顯示在 Output 窗口。
這里會顯示原始編譯器輸出,如Error,Warning 等??梢詥螕?Error 或 Warning 轉到對應的代碼行。
這是一個 Build 成功的例子。
3、Error List 窗口
Build 過程中出現的 Error 和 Warning 的詳細信息可以在 Error List 窗口中查看。
單擊某一項 Error 或者 Warning,可以轉到對應的發(fā)生 Error 或者 Warning 的代碼行。
如上圖,紅色波浪線代表了 Error ,可以將鼠標懸停在上方獲取出現此 Error 的詳細信息。
有的時候,并不是所有的 Error 你一眼就能看出其中的問題,可能會出現一些只對編譯器才有意義的術語或者代碼,例如:
fatal error C1189: #error ...
此時,很多人的做法是把這段話復制粘貼到百度/谷歌搜索欄再去搜索。其實你未必要去做這樣的重復勞動。
也許你不知道,VS 自帶了搜索功能。
在相應的 Error 或者 Warning 條目上右擊,會出現一個菜單,點擊 Show Error Help,將自動執(zhí)行該 Error 或者 Warning 的 Bing 搜索。
另外,也可以點擊 Code 列中的錯誤代碼超鏈接,如 CS1525,同樣會執(zhí)行該錯誤代碼的 Bing 搜索。
一一查看并解決 Error List 中出現的所有的 Error,Rebuild Solution 直至成功生成解決方案。
4、代碼靜態(tài)分析
解決了 Build 過程中 Error List 出現的所有 Error 之后,可以嘗試執(zhí)行代碼靜態(tài)分析。
代碼靜態(tài)分析會去分析代碼中可能的導致運行時錯誤等問題,并給出 Warning。
不要覺得沒 Erorr 了,Build 成功了,就萬事大吉了,在一開始的時候,盡量解決代碼中出現的 Warning,可以省去將來不必要的麻煩。
可以按快捷鍵 Alt+F11 也可以點擊如下菜單,執(zhí)行代碼靜態(tài)分析。
Warning 同樣出現在 Error List 窗口,點擊 「 Warning」選項卡查看。
跳轉至出現 Warning 的代碼行。綠色波浪線代表了 Warning,可將鼠標懸停在上方獲取詳細信息。
Run 階段
5、基本操作
Build Solution 成功以后,按下 F5 執(zhí)行,這將在 Debug 環(huán)境中啟動程序。
此時默認出現兩個窗口。
按下 Break 或 Stop 按鈕來暫停或停止程序。
按下 Continue 按鈕繼續(xù)執(zhí)行程序。
6、設置斷點
設置斷點是 Debug 過程最最最常用的功能。
斷點指示 VS 在執(zhí)行到哪一行代碼的時候掛起。程序掛起的時候,可以查看任意你想看的東西,如變量值,內存,代碼執(zhí)行分支等。
設置斷點很簡單,只要在編輯區(qū)的邊緣單擊一下或者在相應的代碼行按下 F9,旁邊就會出現一個紅色圓點,這個紅色圓點就代表了斷點。
設置好斷點,按下 F5,程序即會在斷點處停下來。
動圖在這里。
接下來,常用的幾個操作是:
F10 | step over code | 單步執(zhí)行 |
F11 | step into code | 跳轉至內層函數 |
Shift+F11 | step out code | 從當前函數中跳出 |
可以設置多個斷點,在 F5,F10 等快捷鍵之間切換,轉到不同的斷點。
7、查看變量
程序執(zhí)行到斷點處,停下來的時候,可以查看代碼中的變量,堆棧調用情況等,看下它們是不是在預期的范圍內。
將鼠標懸停在變量上面,可以看到它此刻的值。
再放個動圖,更清楚一點。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關文章
visual studio 2012安裝配置方法圖文教程 附opencv配置教程
這篇文章主要為大家分享了visual studio 2012安裝配置方法圖文教程,文中附opencv配置教程,文中安裝步驟介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-05-05IE下document.referrer 拒絕訪問的解決方法
原理就是給IE瀏覽器的頁面偷偷加了個鏈接,然后自動點這個鏈接,于是referrer就能保留了,感興趣的朋友可以參考下2013-09-09Coolite Cool Study 1 在Grid中用ComboBox 來編輯數據
作為Coolite的第一個教程,我想展現給大家能夠體現Coolite強大的例子(當然也比官方例子稍微復雜一點)。2009-05-05