windows-nt/Source/XPSP1/NT/inetsrv/iis/svcs/infocomm/setup/dbgutil.h
2020-09-26 16:20:57 +08:00

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 ***********************/