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.

82 lines
2.1 KiB

  1. //*********************************************************************
  2. //* Microsoft Windows **
  3. //* Copyright(c) Microsoft Corp., 1995 **
  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 "IEXPLORE.EXE: "
  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. wnsprintf(ach, sizeof(ach)-1, 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. #if defined(UNIX) && defined(ux10)
  35. wvsprintf(ach, pszMsg, (va_list)(&pszMsg + 1));
  36. #else
  37. wvsprintf(ach, pszMsg, (LPSTR)(&pszMsg + 1));
  38. #endif
  39. OutputDebugString(SZ_COMPNAME);
  40. OutputDebugString(ach);
  41. OutputDebugString("\r\n");
  42. }
  43. static void cdecl _DebugTrap(LPCSTR pszMsg, ...)
  44. {
  45. _DebugMsg(pszMsg);
  46. #ifndef unix
  47. _asm {int 3};
  48. #endif
  49. }
  50. #ifndef unix
  51. #define ASSERT(f) {if (!(f)) { _AssertFailed(__FILE__, __LINE__); _asm {int 3}; } }
  52. #define ASSERTSZ(f,s) {if (!(f)) { _AssertFailedSz(s,__FILE__, __LINE__); _asm {int 3}; } }
  53. #else
  54. #define ASSERT(f) {if (!(f)) { _AssertFailed(__FILE__, __LINE__); } }
  55. #define ASSERTSZ(f,s) {if (!(f)) { _AssertFailedSz(s,__FILE__, __LINE__); } }
  56. #endif /* unix */
  57. #define DEBUGMSG _DebugMsg
  58. #define DEBUGTRAP _DebugTrap
  59. #else // DEBUG
  60. #define ASSERT(f)
  61. #define ASSERTSZ(f,s)
  62. #define DEBUGMSG 1 ? (void)0 : (void)
  63. #define DEBUGTRAP 1 ? (void)0 : (void)
  64. #endif