windows-nt/Source/XPSP1/NT/admin/services/sched/folderui/dbg.h

177 lines
4.5 KiB
C
Raw Permalink Normal View History

2020-09-26 03:20:57 -05:00
#ifndef __DBG_HXX__
#define __DBG_HXX__
#define DEBUG_OUT(x)
#define DECLARE_HEAPCHECKING
#define DEBUGCHECK
#define TRACE(ClassName,MethodName)
#define TRACE_FUNCTION(FunctionName)
#define CHECK_HRESULT(hr)
#define CHECK_LASTERROR(lr)
#define VERIFY(x) x
#define DEBUG_OUT_LASTERROR
#define DEBUG_ASSERT(e)
#define PosDisplay(sz)
#define DbxDisplay(sz)
#define DbxResult(e)
#if DBG==1
#define DEB_TRACE1 DEB_USER1
// debug style : 1 - use dbg out, 2 - use message boxes
#define DBG_STYLE 1
#if defined(_CHICAGO_) && defined(DBX)
#undef DBG_STYLE
#define DBG_STYLE 1
#endif
////////////////////////////////////////////////////////////////////////////
//
// Style 1: Debug out to stdout
//
#if DBG_STYLE==1
DECLARE_DEBUG(Job)
#undef DEBUG_OUT
#define DEBUG_OUT(x) JobInlineDebugOut x
extern DWORD dwHeapChecking;
#undef DECLARE_HEAPCHECKING
#define DECLARE_HEAPCHECKING DWORD dwHeapChecking = 0
#undef DEBUGCHECK
#define DEBUGCHECK \
if ( (dwHeapChecking & 0x1) == 0x1 ) \
HeapValidate(GetProcessHeap(),0,NULL)
#undef TRACE
#define TRACE(ClassName,MethodName) \
DEBUGCHECK; \
DEBUG_OUT((DEB_TRACE, #ClassName"::"#MethodName"(%x)\n", this));
#undef TRACE_FUNCTION
#define TRACE_FUNCTION(FunctionName) \
DEBUGCHECK; \
DEBUG_OUT((DEB_TRACE, #FunctionName"\n"));
#undef CHECK_HRESULT
#define CHECK_HRESULT(hr) \
if ( FAILED(hr) ) \
{ \
DEBUG_OUT((DEB_ERROR, \
"**** ERROR RETURN <%s @line %d> -> %08lx\n", \
__FILE__, \
__LINE__, \
hr)); \
}
#undef CHECK_LASTERROR
#define CHECK_LASTERROR(lr) \
if ( lr != ERROR_SUCCESS ) \
{ \
DEBUG_OUT((DEB_ERROR, \
"**** ERROR RETURN <%s @line %d> -> %dL\n", \
__FILE__, \
__LINE__, \
lr)); \
}
#undef VERIFY
#define VERIFY(x) Win4Assert(x)
#undef DEBUG_OUT_LASTERROR
#define DEBUG_OUT_LASTERROR \
DEBUG_OUT((DEB_ERROR, \
"**** ERROR RETURN <%s @line %d> -> %dL\n", \
__FILE__, \
__LINE__, \
GetLastError()));
#undef DEBUG_ASSERT
#define DEBUG_ASSERT(e) \
if ((e) == FALSE) \
{ \
DEBUG_OUT((DEB_ERROR, \
"**** ASSERTION <%s> FAILED <%s @line %d>\n", \
#e, \
__FILE__, \
__LINE__)); \
}
#endif // DBG_STYLE==1
////////////////////////////////////////////////////////////////////////////
//
// Style 2: Debug out to message box
//
#if DBG_STYLE==2
extern TCHAR emsg[300];
#define PRINT_LR(lr) \
wsprintf(emsg, "<%s @ %d> %dL\n", __FILE__, __LINE__, (lr))
#define PRINT_HR(hr) \
wsprintf(emsg, "<%s @ %d> 0x%x\n", __FILE__, __LINE__, (hr))
#define DISP_ERRMSG MessageBox(NULL, emsg, TEXT("**** ERROR ****"), MB_OK)
#define DISP_MSG MessageBox(NULL, emsg, TEXT("**** TRACE ****"), MB_OK)
#undef CHECK_LASTERROR
#define CHECK_LASTERROR(lr) \
if (lr != ERROR_SUCCESS) { PRINT_LR(lr); DISP_ERRMSG; }
#undef DEBUG_OUT_LASTERROR
#define DEBUG_OUT_LASTERROR { PRINT_LR(GetLastError()); DISP_ERRMSG; }
#undef CHECK_HRESULT
#define CHECK_HRESULT(hr) \
if ( FAILED(hr) ) { PRINT_HR(hr); DISP_ERRMSG; }
#undef PosDisplay
#define PosDisplay(e) \
wsprintf(emsg, "<%s @ %d>\n\n\t %s", __FILE__, __LINE__, #e); DISP_MSG
#endif // DBG_STYLE==2
////////////////////////////////////////////////////////////////////////////
//
// Simple DBX messages
//
#ifdef DBX
#undef DbxDisplay
#define DbxDisplay(sz) MessageBoxA(NULL, sz, "DBX", MB_OK);
#undef DbxResult
#define DbxResult(e) \
{ \
char Buff[100]; \
if (FAILED(hr)) \
{ \
sprintf(Buff, "%s failed (%x)", #e, hr); \
} \
else \
{ \
sprintf(Buff, "%s succeeded", #e); \
} \
MessageBoxA(NULL, Buff, "DBX", MB_OK); \
}
#endif // DBX
#endif // DBG==1
#endif // __DBG_HXX__