首页 > 代码库 > Debug模式应用程序输出Debug调试信息(现成的宏定义,用于格式化打印信息)

Debug模式应用程序输出Debug调试信息(现成的宏定义,用于格式化打印信息)

[cpp] view plain copy
 
  1. // Debug模式,主要输出一些调试的信息。  
  2. #ifdef UNICODE  
  3.     #define _FILE_          _STR2WSTR(__FILE__)  
  4.     #define _FUNCTION_          _STR2WSTR(__FUNCTION__)  
  5. #else  
  6.     #define _FILE_          __FILE__  
  7.     #define _FUNCTION_          __FUNCTION__  
  8. #endif  
  9.   
  10. #define MAX_BUF_SIZE   (1024)  
  11. #define MAX_BIN_COUNT   (16)  
  12. #define MAX_BIN_SIZE   (64)  
  13.   
  14. #ifdef _DEBUG  
  15.     #define new DEBUG_NEW  
  16.   
  17.     #define DBGPRINT(lpszFmt, ...) \  
  18.             TCHAR szText[1024] = {0}; \  
  19.             StringCchPrintf(szText, _countof(szText), lpszFmt, __VA_ARGS__);    \  
  20.             OutputDebugString(szText);  
  21.   
  22.     #define DBGFAILED(dwError)  \  
  23.             LPTSTR lpszBuf = NULL;  \  
  24.             TCHAR szError[1024] = {0};  \  
  25.             FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, dwError, LANG_NEUTRAL, (LPTSTR)&lpszBuf, 0, NULL); \  
  26.             StringCchPrintf(szError, _countof(szError), _T("\nError: File: %s \n\tLine: %d Function: %s()\n\tReason: %s\n"), _FILE_, __LINE__, _FUNCTION_, lpszBuf);    \  
  27.             OutputDebugString(szError); \  
  28.             LocalFree(lpszBuf);  
  29.   
  30.       
  31.     #define DUMPBIN(pData, dwSize) \  
  32.                TCHAR szData[MAX_BIN_SIZE] = {0}; \  
  33.                TRACELOGINFO(_T("\n-----------00-01-02-03-04-05-06-07-08-09-0A-0B-0C-0D-0E-0F")); \  
  34.                for(DWORD i = 0; i < dwSize; i++) \  
  35.                { \  
  36.                       if(0 == (i % MAX_BIN_COUNT)) \  
  37.                       { \  
  38.                          TRACELOGINFO(szData); \  
  39.                          StringCchPrintf(szData, _COUNTOF_(szData), _T("\n%08Xh: %02X"), i, pData[i]); \  
  40.                      } \  
  41.                      else \  
  42.                      { \  
  43.                          StringCchPrintf(szData + _tcslen(szData), _COUNTOF_(szData) - _tcslen(szData), _T(" %02X"), pData[i]); \  
  44.                      } \  
  45.                } \  
  46.                OutputDebugString(szData); \  
  47.                OutputDebugString(_T("\n----------------------------------------------------------\n"));  
  48.   
  49. #else  
  50.     #define DBGPRINT(lpszFmt, ...)  
  51.     #define DBGFAILED()  
  52.     #define DUMPBIN(pData, dwSize)    
  53. #endif  


 

http://blog.csdn.net/visualeleven/article/details/7211249

 

Debug模式应用程序输出Debug调试信息(现成的宏定义,用于格式化打印信息)