在開發除錯過程中,我們往往要想知道一些變數的當前值,簡單的變數可以用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...