217 lines
5.6 KiB
C
217 lines
5.6 KiB
C
/*++
|
|
|
|
Copyright (c) 1994 Microsoft Corporation
|
|
|
|
Module Name :
|
|
|
|
dbgutil.h
|
|
|
|
Abstract:
|
|
|
|
This module declares the macros to wrap around DEBUG_PRINTS class.
|
|
This is the exported header file, which the client is allowed to
|
|
modify for each application the accompanying pgmutils.dll is used.
|
|
|
|
Author:
|
|
|
|
Murali R. Krishnan ( MuraliK ) 22-Sept-1994
|
|
|
|
Revision History:
|
|
--*/
|
|
|
|
# ifndef _DBGUTIL_H_
|
|
# define _DBGUTIL_H_
|
|
|
|
#ifndef _NO_TRACING_
|
|
|
|
#include "pudebug.h"
|
|
|
|
#else // !_NO_TRACING_
|
|
|
|
// begin_user_modifiable
|
|
|
|
//
|
|
// Modify the following flags if necessary
|
|
//
|
|
|
|
# define DEFAULT_OUTPUT_FLAGS ( DbgOutputStderr | DbgOutputLogFile | \
|
|
DbgOutputKdb | DbgOutputTruncate)
|
|
|
|
|
|
// end_user_modifiable
|
|
// begin_user_unmodifiable
|
|
|
|
|
|
# if DBG
|
|
|
|
/************************************************************
|
|
* Include Headers
|
|
************************************************************/
|
|
|
|
# include <pudebug.h>
|
|
|
|
/***********************************************************
|
|
* Macros
|
|
************************************************************/
|
|
|
|
|
|
extern DEBUG_PRINTS * g_pDebug; // define a global debug variable
|
|
|
|
|
|
# define DECLARE_DEBUG_PRINTS_OBJECT() \
|
|
DEBUG_PRINTS * g_pDebug = NULL;
|
|
|
|
|
|
//
|
|
// Call the following macro as part of your initialization for program
|
|
// planning to use the debugging class.
|
|
//
|
|
# define CREATE_DEBUG_PRINT_OBJECT( pszLabel) \
|
|
g_pDebug = PuCreateDebugPrintsObject( pszLabel, DEFAULT_OUTPUT_FLAGS);\
|
|
if ( g_pDebug == NULL) { \
|
|
OutputDebugString( "Unable to Create Debug Print Object \n"); \
|
|
}
|
|
|
|
//
|
|
// Call the following macro once as part of the termination of program
|
|
// which uses the debugging class.
|
|
//
|
|
# define DELETE_DEBUG_PRINT_OBJECT( ) \
|
|
g_pDebug = PuDeleteDebugPrintsObject( g_pDebug);
|
|
|
|
|
|
# define VALID_DEBUG_PRINT_OBJECT() \
|
|
( ( g_pDebug != NULL) && g_pDebug->m_fInitialized)
|
|
|
|
|
|
//
|
|
// Use the DBG_CONTEXT without any surrounding braces.
|
|
// This is used to pass the values for global DebugPrintObject
|
|
// and File/Line information
|
|
//
|
|
# define DBG_CONTEXT g_pDebug, __FILE__, __LINE__
|
|
|
|
|
|
|
|
# define DBG_CODE(s) s /* echoes code in debugging mode */
|
|
|
|
|
|
# define DBG_ASSERT( exp) if ( !(exp)) { \
|
|
PuDbgAssertFailed( DBG_CONTEXT, #exp, NULL); \
|
|
} else {}
|
|
|
|
# define DBG_ASSERT_MSG( exp, pszMsg) \
|
|
if ( !(exp)) { \
|
|
PuDbgAssertFailed( DBG_CONTEXT, #exp, pszMsg); \
|
|
} else {}
|
|
|
|
# define DBG_REQUIRE( exp) DBG_ASSERT( exp)
|
|
|
|
# define DBG_LOG() PuDbgPrint( DBG_CONTEXT, "\n")
|
|
|
|
# define DBG_OPEN_LOG_FILE( pszFile, pszPath) \
|
|
PuOpenDbgPrintFile( g_pDebug, (pszFile), (pszPath))
|
|
|
|
# define DBG_CLOSE_LOG_FILE( ) \
|
|
PuCloseDbgPrintFile( g_pDebug)
|
|
|
|
# define SET_DEBUG_PRINT_FLAGS( dwFlags) \
|
|
PuSetDbgOutputFlags( g_pDebug, (dwFlags))
|
|
|
|
# define GET_DEBUG_PRINT_FLAGS() \
|
|
PuGetDbgOutputFlags( g_pDebug)
|
|
|
|
|
|
//
|
|
// DBGPRINTF() is printing function ( much like printf) but always called
|
|
// with the DBG_CONTEXT as follows
|
|
// DBGPRINTF( ( DBG_CONTEXT, format-string, arguments for format list);
|
|
//
|
|
# define DBGPRINTF( args) PuDbgPrint args
|
|
|
|
# else // DBG
|
|
|
|
|
|
# define DECLARE_DEBUG_PRINTS_OBJECT() /* Do Nothing */
|
|
# define CREATE_DEBUG_PRINT_OBJECT( pszLabel) /* Do Nothing */
|
|
# define DELETE_DEBUG_PRINT_OBJECT( ) /* Do Nothing */
|
|
# define VALID_DEBUG_PRINT_OBJECT() ( TRUE)
|
|
|
|
# define DBG_CODE(s) /* Do Nothing */
|
|
|
|
# define DBG_ASSERT(exp) /* Do Nothing */
|
|
|
|
# define DBG_ASSERT_MSG(exp, pszMsg) /* Do Nothing */
|
|
|
|
# define DBG_REQUIRE( exp) ( (void) (exp))
|
|
|
|
# define DBGPRINTF( args) /* Do Nothing */
|
|
|
|
# define SET_DEBUG_PRINT_FLAGS( dwFlags) /* Do Nothing */
|
|
# define GET_DEBUG_PRINT_FLAGS( ) ( 0)
|
|
|
|
# define DBG_LOG() /* Do Nothing */
|
|
|
|
# define DBG_OPEN_LOG_FILE( pszFile, pszPath) /* Do Nothing */
|
|
|
|
# define DBG_CLOSE_LOG_FILE() /* Do Nothing */
|
|
|
|
# endif // DBG
|
|
|
|
|
|
// end_user_modifiable
|
|
// begin_user_unmodifiable
|
|
|
|
|
|
#ifdef ASSERT
|
|
# undef ASSERT
|
|
#endif
|
|
|
|
|
|
# define ASSERT( exp) DBG_ASSERT( exp)
|
|
|
|
|
|
//
|
|
// Define the debugging constants
|
|
//
|
|
|
|
# define DEBUG_TEST1 0x00000001
|
|
# define DEBUG_TEST2 0x00000002
|
|
|
|
|
|
# if DBG
|
|
|
|
extern DWORD g_dwDebugFlags; // Debugging Flags
|
|
|
|
# define DECLARE_DEBUG_VARIABLE() \
|
|
DWORD g_dwDebugFlags
|
|
|
|
# define SET_DEBUG_FLAGS( dwFlags) g_dwDebugFlags = dwFlags
|
|
# define GET_DEBUG_FLAGS() ( g_dwDebugFlags)
|
|
|
|
# define DEBUG_IF( arg, s) if ( DEBUG_ ## arg & GET_DEBUG_FLAGS()) { \
|
|
s \
|
|
} else {}
|
|
|
|
# define IF_DEBUG( arg) if ( DEBUG_## arg & GET_DEBUG_FLAGS())
|
|
|
|
|
|
# else // DBG
|
|
|
|
|
|
# define DECLARE_DEBUG_VARIABLE() /* Do Nothing */
|
|
# define SET_DEBUG_FLAGS( dwFlags) /* Do Nothing */
|
|
# define GET_DEBUG_FLAGS() ( 0)
|
|
|
|
# define DEBUG_IF( arg, s) /* Do Nothing */
|
|
# define IF_DEBUG( arg) if ( 0)
|
|
|
|
# endif // DBG
|
|
|
|
#endif // !_NO_TRACING_
|
|
|
|
|
|
# endif /* _DBGUTIL_H_ */
|
|
|
|
/************************ End of File ***********************/
|