vc 除錯資訊輸出 列印除錯資訊

2021-09-06 07:36:52 字數 2282 閱讀 4180

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 斷言 的除錯顏色為黑色的,任何訊息都會輸出,這裡的...