- Visual C++從入門到精通(第2版)
- 龍馬高新教育策劃 國家863中部軟件孵化器編著
- 2003字
- 2019-10-09 16:53:01
1.6 Visual C++ 程序調試
本節視頻教學錄像:15分鐘
Visual C++提供了一個很好的調試環境,能迅速識別問題所在,如可以查看變量內容、內存信息等,極大地方便了我們的調試工作。
1.6.1 調試環境
在編譯應用程序的時候,有兩種主要的編譯器配置:Debug(調試)模式和Release(發行版)模式。在Debug模式下,編譯的可執行程序包含了許多調試信息,因而程序相對較大,但便于對程序進行調試。在Release模式下,編譯的可執行程序小,編譯速度快,但不便于對程序進行調試,Release版本的程序通常是最后提交給用戶使用的。
下面來編寫一個程序。
【范例1-2】求10以內的偶數的平方和。
(1)在Visual C++窗口中選擇【File】?【New】菜單項,在彈出的【NEW】對話框中選擇【Win32 Console Application】工程類型,在【Project name】文本框中輸入項目名稱“Sum”。

(2)單擊【OK】按鈕,彈出【Win32 Console Application】對話框,選中【A simple application】單選按鈕。

(3)單擊【Finish】按鈕,彈出【New Project Information】窗口,顯示了本項目的基本信息。

(4)單擊【OK】按鈕,進入項目的編輯界面。選擇【File View】選項卡,展開【Sum Files】?【Source Files】,雙擊“Sum.cpp”,打開代碼編輯窗口,然后輸入以下代碼。(代碼1-2.txt)
01 #incIude"stdafx.h" //預編譯指令,包含頭文件 02 #incIude"stdio.h" 03 void main(int argc, char*argv[]) //主函數定義 04 { 05 int num=0; //初始化變量 06 int sum=0; //初始化變量 07 for(num=0; num<=10; num++) 08 { 09 if(num%2! =0) //如果是奇數 10 continue; //不做處理,直接進入下一輪循環 11 sum+=num*num; //加上下一個偶數的平方 12 } 13 printf("平方和為%d\n", sum); //輸出平方和 14 }
【運行結果】
編譯、鏈接、運行,結果如圖所示。

【范例分析】
這是一個求10以內奇數平方和的小程序。程序本身很簡單,下面利用它來演示如何進行程序調試。
1.設置調試環境
(1)設置活動配置。以調試【范例1-2】中的程序為例,編譯該程序的“Debug”版本,需要設置“Win32 Debug”配置為活動配置。打開“Sum”項目文件,選擇【Build】?【Set Active Configuration】菜單項,彈出【Set Active Project Configuration】對話框,選擇“Sum-Win32 Debug”選項。

單擊【OK】按鈕,即可把Win32 Debug配置設置為活動配置。
(2)設置調試選項和級別。選擇【Project】?【Settings】菜單項,彈出【Project Settings】對話框,選擇【C/C++】選項卡,在【Category】下拉列表中選擇“General”選項。

其中【, Warning level】 (警告級別)的默認設置為“Level 3”,表示報告所有合理的警告信息。“Level 4”的級別更高,表示盡可能地顯示警告信息。“None”不報告任何警告,“Level 1”僅報告嚴重的錯誤,“Level 2”可以報告一些不太嚴重的錯誤。一般來說,選擇“Level 3”。
【Optimizations】(優化)選項設置為“Disable(Debug)”,從而使編譯的程序包含更多的調試信息。
如果選中【Warnings as Errors】(作為錯誤信息的警告)復選框,表明警告信息會被當成錯誤信息顯示出來,停止編譯最終的可執行程序。
如果選中【Generate browse info】(生產瀏覽信息)復選框,表明編譯器生成的信息可用來查找函數、類關系等,會增加編譯的時間。
【Debug info】 (調試信息)允許設置生成的調試信息級別,默認為“Program Database for Edit and Continue”(用于Edit和Continue的程序數據庫),極大限度地保存了調試信息。
【Preprocessor Definitions】(預處理程序定義)指明預處理程序定義,在Debug模式下默認定義了_DEBUG,而在Release模式下沒有定義_DEBUG,從而可以利用預定義_DEBUG在Debug模式和Release模式中實現不同的代碼處理過程。
在【Project Options】(項目選項)列表框中可以添加附加的編譯器設置。
2.調試工具快捷鍵
常用的調試工具的快捷鍵如表所示。

1.6.2 調試程序
可以利用上表所示的調試工具快捷鍵,方便地進行Visual C++應用程序的調試。下面以【范例1-2】中的Sum程序為例,介紹程序調試的方法。
1.設置斷點
打開“Sum.cpp”文件,把光標放在代碼第7行的開始處,如圖所示。

按【F9】鍵,即可在第7行的開始處設置斷點,再在第11行設置一個斷點,斷點設置好后會在行開始處的左邊顯示一個紅色的圓點,如圖所示。

2.單步調試
按【F5】鍵,程序運行,到第7行的斷點處暫停,如圖所示。

上圖所示的窗口包括了Debug窗口、Memory (內存地址)窗口、Variables(變量)窗口和Watch (查看)窗口。Debug窗口會自動顯示出來,其他窗口可選擇菜單項打開,如選擇【View】?【Debug Windows】?【Variables】菜單項,即可打開【Variables】窗口,如圖所示。

當程序運行到第1個斷點處,可在【Variables】窗口中看到變量num和sum的值,如圖所示。

它們的值都是0。也可以通過Quickwatch查看運行中的變量值,如圖所示。選擇num值,變量num高亮顯示。

右擊高亮顯示的num,從彈出的快捷菜單中選擇【QuickWatch】菜單項,彈出【QuickWatch】窗口,其中顯示了num的值,如圖所示。

按【F5】鍵,程序繼續運行,并在下一個斷點處,即第11行暫停。然后按【F10】鍵,繼續進入for循環,再按【F10】鍵,執行第7行的代碼,判斷是否為偶數,此時的num值為1,從而執行“continue”語句。把光標放在第11行處,按【Ctrl+F10】組合鍵,程序將進入下一個循環,然后停止在第11行,此時的num值為2, sum的值為0,如圖所示。

按【F10】鍵,執行求和語句,sum的值變為4,從Variables窗口中可以看到sum的值由0變為4,如圖所示。

按【Shift+F5】組合鍵將中止程序的運行。
3.刪除斷點
按【Ctrl+B】組合鍵,彈出【Breakpoints】窗口,在【Breakpoints】列表框中會顯示程序中的所有斷點,如圖所示。

單擊【Remove All】按鈕,【Breakpoints】列表框中的斷點被清空,單擊【OK】按鈕,這些斷點就從程序中完全刪除了。直接把光標移到斷點處按【F9】鍵,也可以刪除斷點。
- ClickHouse性能之巔:從架構設計解讀性能之謎
- C# 2012程序設計實踐教程 (清華電腦學堂)
- 樂學Web編程:網站制作不神秘
- Mastering Natural Language Processing with Python
- Python數據分析(第2版)
- YARN Essentials
- ExtJS高級程序設計
- Mastering Python Design Patterns
- 響應式Web設計:HTML5和CSS3實戰(第2版)
- Practical Microservices
- 大學計算機基礎實驗指導
- Python第三方庫開發應用實戰
- Android嵌入式系統程序開發(基于Cortex-A8)
- 軟件測試技術
- Java 7 Concurrency Cookbook