/* - debug.h - * Microsoft Internet Phone * Debug functions prototypes and macros * * Revision History: * * When Who What * -------- ------------------ --------------------------------------- * 11.16.95 Yoram Yaacovi Created * */ #ifndef _DEBUG_H #define _DEBUG_H #ifdef __cplusplus extern "C" { #endif /* * Debug message types */ #define AVERROR 0 #define AVTRACE 1 #define AVTRACEMEM 2 #if defined(DEBUG) || defined(TEST) /* * MACRO: DebugTrap(void) * * PURPOSE: Executes a debug break (like 'int 3' on x86) * * PARAMETERS: * none * * RETURN VALUE: * none * * COMMENTS: * */ #ifdef OLD_STUFF #define DebugTrap DebugTrapFn() #endif #define DEBUGCHK(e) if(!(e)) DebugTrap /* * MACRO: DebugPrintError(LPTSTR) * * PURPOSE: Prints an error string to the debug output terminal * * PARAMETERS: * lpszFormat - a printf-style format * * RETURN VALUE: * none * * COMMENTS: * This macro calls the generic debug print macro, specifying * that this is an error message * */ #define DebugPrintError(x) DebugPrintfError x /* * MACRO: DebugPrintTrace(LPTSTR) * * PURPOSE: Prints a trace string to the debug output terminal * * PARAMETERS: * lpszFormat - a printf-style format * * RETURN VALUE: * none * * COMMENTS: * This macro calls the generic debug print macro, specifying * that this is an error message * */ #define DebugPrintTrace(x) DebugPrintfTrace x /* * MACRO: DebugPrintErrorFileLine(DWORD, LPTSTR) * * PURPOSE: Pretty print an error to the debugging output. * * PARAMETERS: * dwError - Actual error code * pszPrefix - String to prepend to the printed message. * * RETURN VALUE: * none * * COMMENTS: * It will take the error, turn it into a human * readable string, prepend pszPrefix (so you * can tag your errors), append __FILE__ and __LINE__ * and print it to the debugging output. * * This macro is just a wrapper around OutputDebugLineErrorFileLine * that is necessary to get proper values for __FILE__ and __LINE__. * */ #define DebugPrintErrorFileLine(dwError, pszPrefix) \ DebugPrintFileLine(dwError, pszPrefix,\ __FILE__, __LINE__) /* * MACRO: DebugPrintTraceFileLine(DWORD, LPTSTR) * * PURPOSE: Pretty print a trace message to the debugging output. * * PARAMETERS: * dwParam- A paramter to trace * pszPrefix - String to prepend to the printed message. * * RETURN VALUE: * none * * COMMENTS: * Takes a parameter, prepend pszPrefix (so you * can tag your traces), append __FILE__ and __LINE__ * and print it to the debugging output. * * This macro is just a wrapper around OutputDebugLineErrorFileLine * that is necessary to get proper values for __FILE__ and __LINE__. * */ #define DebugPrintTraceFileLine(dwParam, pszPrefix) \ DebugPrintFileLine(dwParam, pszPrefix,\ __FILE__, __LINE__) void DebugPrintFileLine( DWORD dwError, LPTSTR szPrefix, LPTSTR szFileName, DWORD nLineNumber); void __cdecl DebugPrintf(ULONG ulFlags, LPTSTR lpszFormat, ...); void __cdecl DebugPrintfError(LPTSTR lpszFormat, ...); void __cdecl DebugPrintfTrace(LPTSTR lpszFormat, ...); #ifdef OLD_STUFF void DebugTrapFn(void); #endif LPTSTR FormatError(DWORD dwError, LPTSTR szOutputBuffer, DWORD dwSizeofOutputBuffer); #else // not DEBUG or TEST #define DebugTrap #define DebugPrintError(x) #define DebugPrintTrace(x) #define DebugPrintTraceFileLine(dwParam, pszPrefix) #define DEBUGCHK(e) #endif #ifdef MEMORY_TRACKING /* * MACRO: DebugPrintTraceMem(LPTSTR) * * PURPOSE: Prints a memory tracking trace string to the debug * output terminal * * PARAMETERS: * lpszFormat - a printf-style format * * RETURN VALUE: * none * * COMMENTS: * This macro calls the generic debug print macro, specifying * that this is an error message * */ #define DebugPrintTraceMem(x) DebugPrintf(AVTRACEMEM, x) #else // no MEMORY_TRACKING #define DebugPrintTraceMem(x) #endif #ifdef __cplusplus } #endif #endif //#ifndef _DEBUG_H