89 lines
1.9 KiB
C
89 lines
1.9 KiB
C
|
//
|
||
|
// Debug.h
|
||
|
//
|
||
|
// Debug stuff for non-MFC projects.
|
||
|
//
|
||
|
// History:
|
||
|
//
|
||
|
// 3/??/96 KenSh Copied from InetSDK sample, added AfxTrace from MFC
|
||
|
// 4/10/96 KenSh Renamed AfxTrace to MyTrace to avoid conflicts
|
||
|
// in projects that use MFC
|
||
|
//
|
||
|
|
||
|
#ifndef __DEBUG_H__
|
||
|
#define __DEBUG_H__
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
#ifdef _DEBUG
|
||
|
|
||
|
void __cdecl MyTrace(const char* lpszFormat, ...);
|
||
|
// void DisplayAssert(char* pszMsg, char* pszAssert, char* pszFile, unsigned line);
|
||
|
BOOL DisplayAssert(LPCSTR pszMessage, LPCSTR pszFile, unsigned line);
|
||
|
|
||
|
// #define SZTHISFILE static char _szThisFile[] = __FILE__;
|
||
|
#define SZTHISFILE
|
||
|
|
||
|
#define VERIFY(f) ASSERT(f)
|
||
|
#define DEBUG_ONLY(f) (f)
|
||
|
|
||
|
#ifndef TRACE
|
||
|
#define TRACE ::MyTrace
|
||
|
#endif
|
||
|
|
||
|
#define THIS_FILE __FILE__
|
||
|
|
||
|
#ifndef AfxDebugBreak
|
||
|
#define AfxDebugBreak() _asm { int 3 }
|
||
|
#endif
|
||
|
|
||
|
#define ASSERTSZ(f, pszMsg) \
|
||
|
do \
|
||
|
{ \
|
||
|
if (!(f) && DisplayAssert(pszMsg, THIS_FILE, __LINE__)) \
|
||
|
AfxDebugBreak(); \
|
||
|
} while (0) \
|
||
|
|
||
|
#ifndef ASSERT
|
||
|
#define ASSERT(f) \
|
||
|
do \
|
||
|
{ \
|
||
|
if (!(f) && DisplayAssert(NULL, THIS_FILE, __LINE__)) \
|
||
|
AfxDebugBreak(); \
|
||
|
} while (0) \
|
||
|
|
||
|
#endif
|
||
|
|
||
|
// #define FAIL(szMsg) \
|
||
|
// { static char szMsgCode[] = szMsg; \
|
||
|
// DisplayAssert(szMsgCode, "FAIL", _szThisFile, __LINE__); }
|
||
|
|
||
|
// // macro that checks a pointer for validity on input
|
||
|
// //
|
||
|
// #define CHECK_POINTER(val) if (!(val) || IsBadWritePtr((void *)(val), sizeof(void *))) return E_POINTER
|
||
|
|
||
|
#else // _DEBUG
|
||
|
|
||
|
#define SZTHISFILE
|
||
|
|
||
|
#define VERIFY(f) ((void)(f))
|
||
|
#define DEBUG_ONLY(f) ((void)0)
|
||
|
|
||
|
inline void __cdecl MyTrace(const char* /*lpszFormat*/, ...) { }
|
||
|
#define TRACE 1 ? (void)0 : ::MyTrace
|
||
|
|
||
|
#define ASSERTSZ(fTest, err)
|
||
|
#define ASSERT(fTest)
|
||
|
#define FAIL(err)
|
||
|
#define CHECK_POINTER(val)
|
||
|
|
||
|
#endif // !_DEBUG
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif // !__DEBUG_H__
|