Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

71 lines
1.8 KiB

  1. //*********************************************************************
  2. //* Microsoft Windows **
  3. //* Copyright(c) Microsoft Corp., 1994 **
  4. //*********************************************************************
  5. // debugging macros
  6. #undef ASSERT
  7. #undef DEBUGMSG
  8. #ifdef DEBUG
  9. // component name define
  10. #ifndef SZ_COMPNAME
  11. #define SZ_COMPNAME ""
  12. #endif // SZ_COMPNAME
  13. static void _AssertFailedSz(LPCSTR pszText,LPCSTR pszFile, int line)
  14. {
  15. LPCSTR psz;
  16. char ach[256];
  17. static char szAssertFailed[] = SZ_COMPNAME "%s (%s,line %d)\r\n";
  18. for (psz = pszFile + lstrlen(pszFile); psz != pszFile; psz=AnsiPrev(pszFile, psz))
  19. {
  20. if ((AnsiPrev(pszFile, psz)!= (psz-2)) && *(psz - 1) == '\\')
  21. break;
  22. }
  23. wsprintf(ach, szAssertFailed, pszText,psz, line);
  24. OutputDebugString(ach);
  25. }
  26. static void _AssertFailed(LPCSTR pszFile, int line)
  27. {
  28. static char szAssertFailed[] = "Assertion failed";
  29. _AssertFailedSz(szAssertFailed,pszFile,line);
  30. }
  31. static void cdecl _DebugMsg(LPCSTR pszMsg, ...)
  32. {
  33. char ach[2*MAX_PATH+40];
  34. wvsprintf(ach, pszMsg, (LPSTR)(&pszMsg + 1));
  35. OutputDebugString(SZ_COMPNAME);
  36. OutputDebugString(ach);
  37. OutputDebugString("\r\n");
  38. }
  39. static void cdecl _DebugTrap(LPCSTR pszMsg, ...)
  40. {
  41. _DebugMsg(pszMsg);
  42. _asm {int 3};
  43. }
  44. #define ASSERT(f) {if (!(f)) { _AssertFailed(__FILE__, __LINE__); _asm {int 3}; } }
  45. #define ASSERTSZ(f,s) {if (!(f)) { _AssertFailedSz(s,__FILE__, __LINE__); _asm {int 3}; } }
  46. #define DEBUGMSG _DebugMsg
  47. #define DEBUGTRAP _DebugTrap
  48. #else // DEBUG
  49. #define ASSERT(f)
  50. #define ASSERTSZ(f,s)
  51. #define DEBUGMSG 1 ? (void)0 : (void)
  52. #define DEBUGTRAP 1 ? (void)0 : (void)
  53. #endif