利用afxDump 來除錯自己的程式

2021-06-07 12:47:24 字數 901 閱讀 6444

在開發除錯過程中,我們往往要想知道一些變數的當前值,簡單的變數可以用trace語句在除錯視窗中列印出來:

trace(" this height :%d",height);

但是如果遇到比較複雜的值,如crect, crgn 等,如果要把它的值都列印出來,那是相當的麻煩:

trace(" this left :%d right % top % bottom %d \n",rect.left,rect.right,rect.top,rect.bottom);

如果程式很多地方都要這麼做,豈不鬱悶死,

還好,vc的開發者已經想到了這個問題,特地提供了乙個巨集:afxdump來簡化這個工作,相對前面那個例子,現在可以這樣寫:

afxdump << rect << "\n";

這樣你就美哉了吧!但是使用不久你就發現還是有不方便的地方:

1, 在release 下 新加的**編譯不了。

2, 每一次都要在後面補上 << "\n"  ;這樣的語句,不然它列印字串不會自動換行。

現在vs不會再給我們提供進一步的幫助,只能自己想辦法;經過不停的摸索,終於找到乙個辦法,如下:

cdumpcontext  debugprintobj;

#ifdef _debug

#define debugprint(a) \

debugprintobj << a << "\n";

#else

#define debugprint(a)

#endif

自己定義乙個cdumpcontext物件 debugprintobj;

再定義乙個巨集debugprint(a)如上,相對上面的例子可以這樣使用:

debugprint(rect);

這樣就完滿的解決了這個問題!

如何利用Emacs來除錯C 程式

俗話說,emacs是神的編輯器,而vim是編輯器之神。高手程式設計師都是用這兩樣神器進行開發。本人覺程式設計客棧得,emacs之所以厲害,是因為許多在其他編輯器下必須用滑鼠點選很多步的操作,在emacs下都可以通過鍵盤來完成。大大地節省了你在顯示器上找按鈕的時間。emacs在linux上執行感覺比w...

自己除錯通過的儲存過程

create procedure getrecordfrompage tblname varchar 255 表名 fldname varchar 255 欄位名 pagesize int 10,頁尺寸 pageindex int 1,頁碼 iscount bit 0,返回記錄總數,非 0 值則返回...

使用curl來除錯你的應用

我們在客戶端開發過程中總免不了和後端進行api對接,有時候需要對返回的資料格式進行除錯,有時候每次執行客戶端來傳送請求,這個未免效率太低,這裡就來介紹乙個好用的工具 curl。curl是乙個向伺服器傳輸資料的工具,它支援http https ftp ftps scp sftp tftp telnet...