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.
|
|
//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1997 - 1999
//
// File: debug.h
//
//--------------------------------------------------------------------------
#ifndef __debug_h
#define __debug_h
/*-----------------------------------------------------------------------------
/ Debugging APIs (use the Macros, they make it easier and cope with correctly / removing debugging when it is disabled at build time). /----------------------------------------------------------------------------*/ void DoTraceSetMask(DWORD dwMask); void DoTraceSetMaskFromRegKey(HKEY hkRoot, LPCTSTR pszSubKey); void DoTraceSetMaskFromCLSID(REFCLSID rCLSID); void DoTraceEnter(DWORD dwMask, LPCTSTR pName); void DoTraceLeave(void); void DoTrace(LPCTSTR pFormat, ...); void DoTraceGUID(LPCTSTR pPrefix, REFGUID rGUID); void DoTraceAssert(int iLine, LPTSTR pFilename, LPTSTR pCondition);
/*-----------------------------------------------------------------------------
/ Macros to ease the use of the debugging APIS. /----------------------------------------------------------------------------*/
#ifdef DEBUG
void DebugThreadDetach(void); // optional
void DebugProcessAttach(void); // required
void DebugProcessDetach(void); // required
#define TraceSetMask(dwMask) DoTraceSetMask(dwMask)
#define TraceSetMaskFromRegKey(hk, psz) DoTraceSetMaskFromRegKey(hk, psz)
#define TraceSetMaskFromCLSID(rCLSID) DoTraceSetMaskFromCLSID(rCLSID)
#define TraceEnter(dwMask, fn) DoTraceEnter(dwMask, TEXT(fn))
#define TraceLeave DoTraceLeave
#define Trace(x) DoTrace x
#define TraceMsg(s) DoTrace(TEXT(s))
#define TraceGUID(s, rGUID) DoTraceGUID(TEXT(s), rGUID)
#define TraceAssert(x) \
{ if ( !(x) ) DoTraceAssert(__LINE__, TEXT(__FILE__), TEXT(#x)); }
#define TraceLeaveResult(hr) \
{ HRESULT __hr = (hr); if (FAILED(__hr)) Trace((TEXT("Failed (%08x)"), __hr)); TraceLeave(); return __hr; }
#define TraceLeaveVoid() \
{ TraceLeave(); return; }
#define TraceLeaveValue(value) \
{ TraceLeave(); return (value); }
#else // !DEBUG
#define DebugThreadDetach()
#define DebugProcessAttach()
#define DebugProcessDetach()
#define TraceSetMask(dwMask)
#define TraceSetMaskFromRegKey(hk, psz)
#define TraceSetMaskFromCLSID(rCLSID)
#define TraceEnter(dwMask, fn)
#define TraceLeave()
#define Trace(x)
#define TraceMsg(s)
#define TraceGUID(s, rGUID)
#define TraceAssert(x)
#define TraceLeaveResult(hr) { return (hr); }
#define TraceLeaveVoid() { return; }
#define TraceLeaveValue(value) { return (value); }
#endif // DEBUG
#endif // __debug_h
|