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.2 KiB
82 lines
2.2 KiB
|
|
#ifndef _Multi_Level_Zone_Debug_H_
|
|
#define _Multi_Level_Zone_Debug_H_
|
|
|
|
#include <confdbg.h>
|
|
#include <debspew.h>
|
|
|
|
#define ZONE_FLAG(z) (1 << (z))
|
|
|
|
#if defined(_DEBUG) && defined(MULTI_LEVEL_ZONES)
|
|
|
|
#define DEFAULT_ZONES "Warning", "Trace", "Function",
|
|
#define BASE_ZONE_INDEX (ZONE_FUNCTION + 1)
|
|
|
|
|
|
#undef TRACE_OUT
|
|
#define TRACE_OUT(s) MLZ_TraceZoneEnabled(MLZ_FILE_ZONE) ? (MLZ_TraceOut s) : 0
|
|
|
|
#undef WARNING_OUT
|
|
#define WARNING_OUT(s) MLZ_WarningOut s
|
|
|
|
#undef DebugEntry
|
|
#define DebugEntry(fn) MLZ_EntryOut(MLZ_FILE_ZONE, #fn)
|
|
|
|
#undef DebugExitVOID
|
|
#define DebugExitVOID(fn) MLZ_ExitOut(MLZ_FILE_ZONE, #fn, RCTYPE_VOID, (DWORD) 0)
|
|
|
|
#undef DebugExitBOOL
|
|
#define DebugExitBOOL(fn,f) MLZ_ExitOut(MLZ_FILE_ZONE, #fn, RCTYPE_BOOL, (DWORD) f)
|
|
|
|
#undef DebugExitDWORD
|
|
#define DebugExitDWORD(fn,dw) MLZ_ExitOut(MLZ_FILE_ZONE, #fn, RCTYPE_DWORD, (DWORD) dw)
|
|
|
|
#undef DebugExitHRESULT
|
|
#define DebugExitHRESULT(fn,hr) MLZ_ExitOut(MLZ_FILE_ZONE, #fn, RCTYPE_HRESULT, (DWORD) hr)
|
|
|
|
#undef DebugExitINT
|
|
#define DebugExitINT(fn,n) MLZ_ExitOut(MLZ_FILE_ZONE, #fn, RCTYPE_INT, (DWORD) n)
|
|
|
|
#undef DebugExitULONG
|
|
#define DebugExitULONG(fn,ul) MLZ_ExitOut(MLZ_FILE_ZONE, #fn, RCTYPE_ULONG, (DWORD) ul)
|
|
|
|
#undef DebugExitPTR
|
|
#define DebugExitPTR(fn,lp) MLZ_ExitOut(MLZ_FILE_ZONE, #fn, RCTYPE_PTR, (DWORD_PTR) lp)
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif // __cplusplus
|
|
|
|
typedef enum
|
|
{
|
|
RCTYPE_VOID = 0,
|
|
RCTYPE_BOOL = 1,
|
|
RCTYPE_DWORD = 2,
|
|
RCTYPE_HRESULT = 3,
|
|
RCTYPE_INT = 4,
|
|
RCTYPE_ULONG = 5,
|
|
RCTYPE_PTR = 6
|
|
}
|
|
RCTYPE;
|
|
|
|
void WINAPI MLZ_DbgInit(PSTR *apszZones, UINT cZones);
|
|
void WINAPI MLZ_DbgDeInit(void);
|
|
void WINAPIV MLZ_WarningOut(PSTR pszFormat, ...);
|
|
BOOL WINAPI MLZ_TraceZoneEnabled(int iZone);
|
|
void WINAPIV MLZ_TraceOut(PSTR pszFormat, ...);
|
|
void WINAPI MLZ_EntryOut(int iZone, PSTR pszFunName);
|
|
void WINAPI MLZ_ExitOut(int iZone, PSTR pszFunName, RCTYPE eRetCodeType, DWORD_PTR dwRetCode);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif // __cplusplus
|
|
|
|
#else
|
|
#define DebugExitPTR(fn,lp)
|
|
|
|
#endif // _DEBUG && MULTI_ZONE_OUT
|
|
|
|
#endif // _Multi_Level_Zone_Debug_H_
|
|
|
|
|