www.pudn.com > PPPOE.rar > debug.h


 
//******************************************************************** 
//	ÈÕÆÚ:	2004/08/24 - 24:8:2004   17:50 
//	Ãûǰ:	tiamo 
//	ÃèÊö:	debug routine 
//********************************************************************* 
 
#pragma once 
 
#ifdef DBG 
 
	#define DBG_IRQL									0x00000001 
	#define DBG_FILE_INFO								0x00000002 
	#define DBG_FUNCTION_INFO							0x00000004 
	#define DBG_BREAK									0x00000008 
 
	#define DBG_INFO									0x00000001 
	#define DBG_ERROR									0x00000002 
	#define DBG_WARNING									0x00000004 
 
	// debug enabled flags 
	extern BOOLEAN g_bDebugEnabled; 
 
	// debug level 
	extern ULONG g_ulDebugLevel; 
 
	#define DebugPrint(level,mask,x)														\ 
	{																						\ 
		if(g_bDebugEnabled && (level & g_ulDebugLevel))										\ 
		{																					\ 
			DbgPrint("********"DRIVER_NAME"********");										\ 
			if(mask & DBG_IRQL)																\ 
			{																				\ 
				DbgPrint("irql = %d, ",KeGetCurrentIrql());									\ 
			}																				\ 
			if(mask & DBG_FILE_INFO)														\ 
			{																				\ 
				DbgPrint("file = %s,line = %d, ",__FILE__,__LINE__);						\ 
			}																				\ 
			if(mask & DBG_FUNCTION_INFO)													\ 
			{																				\ 
				DbgPrint("function = %s, ",__FUNCTION__);									\ 
			}																				\ 
			DbgPrint x;																		\ 
			if(mask & DBG_BREAK)															\ 
			{																				\ 
				DbgBreakPoint();															\ 
			}																				\ 
		}																					\ 
	} 
 
	// debug print information 
	#define DebugInfo(x)						DebugPrint(DBG_INFO,0,x) 
 
	// debug print warning 
	#define DebugWarning(x)						DebugPrint(DBG_WARNING,DBG_FILE_INFO | DBG_FUNCTION_INFO,x) 
 
	// debug print error 
	#define DebugError(x)						DebugPrint(DBG_ERROR,DBG_FILE_INFO | DBG_FUNCTION_INFO | DBG_BREAK,x) 
 
	// debug for enter level function 
	#define DebugEnter()						DebugPrint(DBG_INFO,DBG_FUNCTION_INFO | DBG_IRQL,"enter.\n"); 
 
	// return 
	#define DebugReturn()						DebugPrint(DBG_INFO,DBG_FUNCTION_INFO | DBG_IRQL,"return.\n"); 
 
#else 
 
	#define DebugPrint(a,b,c)					__noop 
 
	#define DebugInfo(a,b,c)					__noop 
 
	#define DebugWarning(a,b,c)					__noop 
 
	#define DebugError(a,b,c)					__noop 
 
	#define DebugEnter(a,b,c)					__noop 
 
	#define DebugReturn(a,b,c)					__noop 
 
#endif