1.cdumpcontext
該類沒有基類。
這個類支援面向流的診斷輸出,以人能夠閱讀的文字。
該類過載了《操作符。
afxdump是乙個預宣告的cdumpcontext物件,可以方便使用。
該物件只在mfc的debug版中有效。
可以將調式資訊輸出到除錯輸出視窗或除錯終端。
// example for afxdump
cperson myperson = new cperson;
// set some fields of the cperson object...
//..
// now dump the contents
#ifdef _debug
afxdump << "dumping myperson:/n";
myperson->dump( afxdump );
afxdump << "/n";
#endif
如果想建立乙個制定的輸出,比如乙個制定的errlog檔案。
我們可以自己生成乙個cdumpcontext物件。
方法如下:
cfile f;
if( !f.open( "dump.txt", cfile::modecreate | cfile::modewrite ) )
cdumpcontext dc( &f );
2.trace
這個巨集可以在debug過程中,方便的跟蹤程式中的變數的值。
在debug環境中,trace巨集輸出到afxdump物件中。
在release環境中,它不起作用。
trace一次限制512個字元,包括結束的null字元。
如果超過將引發assert。
例:int i = 1;
char sz = "one";
trace( "integer = %d, string = %s/n", i, sz );
// output: 'integer = 1, string = one'
同時,還有trace0,trace1,trace2,trace3等巨集。
數字代表巨集中的引數數。
// example for trace0
trace0( "start dump of myclass members:" );
// example for trace1
int i = 1;
trace1( "integer = %d/n", i );
// output: 'integer = 1'
// example for trace2
int i = 1;
char sz = "one";
trace2( "integer = %d, string = %s/n", i, sz );
// output: 'integer = 1, string = one'
3.void afxdump( const cobject* pob )
該函式呼叫物件的dump成員函式,將資訊輸出到afxdump制定的位置。
最好不要在程式中呼叫該函式,而使用物件的dump函式。
4.virtual void dump( cdumpcontext& dc ) const;
是cobjec的成員函式,將物件的內容輸出到乙個cdumpcontext物件。
寫自定義類的時候,應該重寫dump函式,來提供診斷服務。
重寫的dump函式中一般會先呼叫基類的dump函式,後輸出資料成員。
cobject::dump輸出類名,如果你的類用了implement_dynamic或implement_serial巨集。
例:class cperson : public cobject
;//實現
#ifdef _debug
void cperson::dump( cdumpcontext& dc ) const
#endif
//呼叫
cperson person;
#ifdef _debug
cfile f;
if( !f.open( "c:", cfile::modecreate | cfile::modewrite ) )
cdumpcontext dc( &f );
person.dump(dc);
dc<<"test dump output";
#endif
在較複雜的程式中,我們可以採用上述方法,
在除錯程式的過程中,輸出自己想要的資料和資訊。
還是較為方便和簡單的方法的。
from:
VC除錯資訊輸出 TRACE巨集
trace巨集對於vc下程式除錯來說是很有用的東西,有著類似printf的功能 該巨集僅僅在程式的debug版本中出現,當release的時候該巨集就完全消失了,從而幫助你除錯也在release的時候減少 量。使用非常簡單,格式如下 trace ddddddddddd trace wewe d 33...
C debug除錯資訊列印及輸出
1.debug只在 debug模式下才執行 執行按鈕後面的下拉框可選 2.debug提供了許多除錯指令,如斷言 system.diagnostics.debug.assert false,資訊 將出現乙個對話方塊 3.debug可以自定義 下例將資訊存入磁碟檔案 system.diagnostics...
Logcat列印除錯資訊
android logcat除錯中的v d i w e的分別代表什麼?log.v 黑色 verbose info log.d 藍色 debug info log.i 綠色 info log.w 橙色 warn log.e 紅色 error info 斷言 的除錯顏色為黑色的,任何訊息都會輸出,這裡的...