DEBUG.H
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:2k
源码类别:

Windows编程

开发平台:

Visual C++

  1. /////////////////////////////////////////////////////////////////////////////
  2. // Diagnostic support
  3. //
  4. // This is a part of the Microsoft Foundation Classes C++ library.
  5. // Copyright (C) 1995 Microsoft Corporation
  6. // All rights reserved.
  7. //
  8. // This source code is only intended as a supplement to the
  9. // Microsoft Foundation Classes Reference and related
  10. // electronic documentation provided with the library.
  11. // See these sources for detailed information regarding the
  12. // Microsoft Foundation Classes product.
  13. #ifdef _PSEUDO_DEBUG
  14. #undef TRACE
  15. #undef VERIFY
  16. #undef ASSERT
  17. #undef THIS_FILE
  18. #undef TRACE0
  19. #undef TRACE1
  20. #undef TRACE2
  21. #undef TRACE3
  22. // Note: file names are still ANSI strings (filenames rarely need UNICODE)
  23. BOOL AssertFailedLine(LPCSTR lpszFileName, int nLine);
  24. void Trace(LPCTSTR lpszFormat, ...);
  25. // by default, debug break is asm int 3, or a call to DebugBreak, or nothing
  26. #if defined(_M_IX86)
  27. #define CustomDebugBreak() _asm { int 3 }
  28. #else
  29. #define CustomDebugBreak() DebugBreak()
  30. #endif
  31. #define TRACE              ::Trace
  32. #define THIS_FILE          __FILE__
  33. #define ASSERT(f) 
  34. do 
  35. if (!(f) && AssertFailedLine(THIS_FILE, __LINE__)) 
  36. CustomDebugBreak(); 
  37. } while (0) 
  38. #define VERIFY(f)          ASSERT(f)
  39. // The following trace macros are provided for backward compatiblity
  40. //  (they also take a fixed number of parameters which provides
  41. //   some amount of extra error checking)
  42. #define TRACE0(sz)              ::Trace(_T(sz))
  43. #define TRACE1(sz, p1)          ::Trace(_T(sz), p1)
  44. #define TRACE2(sz, p1, p2)      ::Trace(_T(sz), p1, p2)
  45. #define TRACE3(sz, p1, p2, p3)  ::Trace(_T(sz), p1, p2, p3)
  46. #endif // !_PSEUDO_DEBUG