也許一個開發人員一半以上的時間都是在面對錯誤,所以好的調試/查錯方法(工具)會減輕我們工作的負擔,也可以讓枯燥的DEBUG過程得以縮短。
VC開發環境所提供的調試環境是很優秀的,我們可以運用單步運行,設置斷點的方法來查找問題所在。但是這種跟蹤是非常耗時的,所以我們需要采用一些策略來讓我們更容易的發現錯誤並對錯誤進行定位,所幸的是VC在這方面提供了強大的支持。在本節中我們先看看如何利用設置斷點和利用TRACE宏來輸出運行情況。
在VC開發環境中按下F9就可以在光標所在行設置斷點,再按一次就可以取消該處斷點。設置斷點的意義在於在調試過程當運行到該行時回產生一個中斷並返回到VC開發環境中,在開發環境中你可以查看各個變量的值。下面是我們用於測試的代碼,前面有紅色圓形的行表示該行設置有斷點:
一般來講設置斷點有下面的技巧:
在調試過程中到達斷點處你可以通過上下文變量窗口(Variables)觀察該函數中的變量的值,如果需要觀察未在該函數出現的全局變量或者類成員變量這需要將變量名添加到觀察窗口(Watch)中輸入變量名稱。但程序編譯完成後請按下F5鍵以調試的方式執行程序,當進入斷點時VC開發環境會被自動激活,然後我們可以可以觀察程序的運行情況。在調試過程中也可以添加和刪除斷點。如下圖:
如果在運行過程中被觀察的變量的值發生了變化則該變量在觀察窗中會變為紅色。
MFC中提供的TRACE宏可以幫助我們在程序調試運行過程中方便的輸出調試信息。TRACE宏的定義為:TRACE(exp),其中的表達式使用與printf相同的表達方法。例如下面的代碼:
void CSam_sp_31Dlg::OnTest2()
{
static int i=5,j=50;
char szDeb[]="debug string";
TRACE("trace i=%d j=%d string=%s ",i,j,s