標籤:

C++debug信息級別方法

C++debug信息級別方法

目錄:

  • VERBOSE日誌定義
  • 通過DEBUG_LEVEL去定義debug信息級別
  • 應用

VERBOSE日誌定義

我們先看一行代碼:

VERBOSE(DLLTEXT("IOemPS::EnableDriver() entry.
"))

這行代碼表示當我們調試時可以在調試平台如Windbg等看到函數入口信息。

如果我們想要在調試時了解dll模塊的載入,函數的調用等這些調試級別詳細信息,我們需要定義VERBOSE日誌。比如上面。

如果我們需要顯示程序執行錯誤

在debug.h中這樣定義:

#define VERBOSE if(giDebugLevel <= DBG_VERBOSE) DebugMsg #define TERSE if(giDebugLevel <= DBG_TERSE) DebugMsg #define WARNING if(giDebugLevel <= DBG_WARNING) DebugMsg #define ERR if(giDebugLevel <= DBG_ERROR) DebugMsg

可以看出,VERBOSE其實就是DebugMsg。我們通過定義giDebugLevel去設置debug消息級別 。

通過DEBUG_LEVEL去定義debug信息級別

INT giDebugLevel = DEBUG_LEVEL

其中DEBUG_LEVEL可以這樣定義

//debug.h中定義#define DBG_VERBOSE 1#define DBG_TERSE 2#define DBG_WARNING 3#define DBG_ERROR 4#define DBG_RIP 5#define DBG_NONE 6//debug.cpp中實現// Determine what level of debugging messages to eject. #ifdef VERBOSE_MSG #define DEBUG_LEVEL DBG_VERBOSE#elif TERSE_MSG #define DEBUG_LEVEL DBG_TERSE#elif WARNING_MSG #define DEBUG_LEVEL DBG_WARNING#elif ERROR_MSG #define DEBUG_LEVEL DBG_ERROR#elif RIP_MSG #define DEBUG_LEVEL DBG_RIP#elif NO_DBG_MSG #define DEBUG_LEVEL DBG_NONE#else #define DEBUG_LEVEL DBG_VERBOSE#endif

這樣我們就可以通過編譯選項來設置定義需要的日誌消息級別。


推薦閱讀:

阿貝爾獎真是個雞肋
三次數學危機.終於陷入混沌
平行宇宙中的故事-磚訪Q賽金獎得主楚千羽(純屬虛構)
一些「自殘」的作者和他們的書
歐拉公式中柯西的證明是怎樣的?

TAG:數學 |