官术网_书友最值得收藏!

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】鍵,也可以刪除斷點。

主站蜘蛛池模板: 罗平县| 丹寨县| 巴马| 井冈山市| 新和县| 郯城县| 军事| 静乐县| 石河子市| 临沂市| 上高县| 富民县| 中西区| 法库县| 慈利县| 永善县| 青神县| 蓬安县| 哈尔滨市| 宜黄县| 舒城县| 玉门市| 台山市| 周口市| 钟山县| 昌吉市| 富锦市| 上虞市| 金山区| 屯昌县| 南澳县| 龙胜| 大宁县| 蕉岭县| 凤阳县| 高陵县| 南投市| 六盘水市| 长汀县| 南汇区| 沭阳县|