Source code of Windows XP (NT5)
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.
|
|
//+---------------------------------------------------------------------------
// Copyright (C) 1996 Microsoft Corporation.
//
// File: debug.hxx
//
// Contents: Debugging macros
//
//----------------------------------------------------------------------------
#pragma once
#if DBG == 1
#include <stdio.h>
#include <stdarg.h>
# define ISAssert(x) \
(void)((x) || (ISAssertEx(__FILE__, __LINE__, #x),0))
inline void ISAssertEx( char const * szFile, int iLine, char const * szMessage) { char acsString[200]; sprintf( acsString, "%s, File: %s Line: %u\n", szMessage, szFile, iLine ); OutputDebugStringA( acsString ); DebugBreak(); }
#define DEB_ERROR 0x00000001 // exported error paths
#define DEB_WARN 0x00000002 // exported warnings
#define DEB_TRACE 0x00000004 // exported trace messages
#define DEB_IERROR 0x00000100 // internal error paths
#define DEB_IWARN 0x00000200 // internal warnings
#define DEB_ITRACE 0x00000400 // internal trace messages
#define DEB_FORCE 0x7fffffff // force message
#define DEF_INFOLEVEL (DEB_ERROR | DEB_WARN)
#define DECLARE_INFOLEVEL(comp) \
extern unsigned long comp##InfoLevel = DEF_INFOLEVEL;
extern void isLogString( const char * pcString );
//
// The first form takes a mask and prints to the debugger.
// The second form prints to the log file
//
#define DECLARE_DEBUG(comp) \
extern unsigned long comp##InfoLevel; \ _inline void \ comp##InlineDebugOut(unsigned long fDebugMask, char *pszfmt, ...) \ { \ if (comp##InfoLevel & fDebugMask) \ { \ char acsString[1000];\ va_list va; \ va_start(va, pszfmt);\ vsprintf(acsString, pszfmt, va); \ va_end(va);\ OutputDebugStringA(acsString);\ } \ }\ _inline void \ comp##InlineDebugOut( char *pszfmt, ...) \ { \ if ( TRUE ) \ { \ char acsString[1000];\ va_list va; \ va_start(va, pszfmt);\ vsprintf(acsString, pszfmt, va); \ va_end(va);\ comp##LogString( acsString );\ } \ }
#else // DBG == 0
#define ISAssert(x)
#define DECLARE_DEBUG(comp)
#define DECLARE_INFOLEVEL(comp)
#endif // DBG == 0
|