|
|
//*********************************************************************
//* Microsoft Windows **
//* Copyright(c) Microsoft Corp., 1995 **
//*********************************************************************
// debugging macros
#undef ASSERT
#undef DEBUGMSG
#ifdef DEBUG
// component name define
#ifndef SZ_COMPNAME
#define SZ_COMPNAME "IEXPLORE.EXE: "
#endif // SZ_COMPNAME
static void _AssertFailedSz(LPCSTR pszText,LPCSTR pszFile, int line) { LPCSTR psz; char ach[256]; static char szAssertFailed[] = SZ_COMPNAME "%s (%s,line %d)\r\n";
for (psz = pszFile + lstrlen(pszFile); psz != pszFile; psz=AnsiPrev(pszFile, psz)) { if ((AnsiPrev(pszFile, psz)!= (psz-2)) && *(psz - 1) == '\\') break; } wnsprintf(ach, sizeof(ach)-1, szAssertFailed, pszText,psz, line); OutputDebugString(ach); }
static void _AssertFailed(LPCSTR pszFile, int line) { static char szAssertFailed[] = "Assertion failed"; _AssertFailedSz(szAssertFailed,pszFile,line);
}
static void cdecl _DebugMsg(LPCSTR pszMsg, ...) { char ach[2*MAX_PATH+40];
#if defined(UNIX) && defined(ux10)
wvsprintf(ach, pszMsg, (va_list)(&pszMsg + 1)); #else
wvsprintf(ach, pszMsg, (LPSTR)(&pszMsg + 1)); #endif
OutputDebugString(SZ_COMPNAME); OutputDebugString(ach); OutputDebugString("\r\n"); }
static void cdecl _DebugTrap(LPCSTR pszMsg, ...) { _DebugMsg(pszMsg); #ifndef unix
_asm {int 3}; #endif
}
#ifndef unix
#define ASSERT(f) {if (!(f)) { _AssertFailed(__FILE__, __LINE__); _asm {int 3}; } }
#define ASSERTSZ(f,s) {if (!(f)) { _AssertFailedSz(s,__FILE__, __LINE__); _asm {int 3}; } }
#else
#define ASSERT(f) {if (!(f)) { _AssertFailed(__FILE__, __LINE__); } }
#define ASSERTSZ(f,s) {if (!(f)) { _AssertFailedSz(s,__FILE__, __LINE__); } }
#endif /* unix */
#define DEBUGMSG _DebugMsg
#define DEBUGTRAP _DebugTrap
#else // DEBUG
#define ASSERT(f)
#define ASSERTSZ(f,s)
#define DEBUGMSG 1 ? (void)0 : (void)
#define DEBUGTRAP 1 ? (void)0 : (void)
#endif
|