/*++ Copyright (c) 1994-7 Microsoft Corporation Module Name: debug.h Abstract: This file contains debugging macros for the binl server. Author: Colin Watson (colinw) 14-Apr-1997 Environment: User Mode - Win32 Revision History: --*/ #define DEBUG_DIR L"\\debug" #define DEBUG_FILE L"\\binlsvc.log" #define DEBUG_BAK_FILE L"\\binlsvc.bak" // // LOW WORD bit mask (0x0000FFFF) for low frequency debug output. // #define DEBUG_ADDRESS 0x00000001 // subnet address #define DEBUG_OPTIONS 0x00000008 // binl option #define DEBUG_ERRORS 0x00000010 // hard error #define DEBUG_STOC 0x00000020 // protocol error #define DEBUG_INIT 0x00000040 // init error #define DEBUG_SCAVENGER 0x00000080 // sacvenger error #define DEBUG_TIMESTAMP 0x00000100 // debug message timing #define DEBUG_REGISTRY 0x00000400 // Registry operation #define DEBUG_NETINF 0x00000800 // NETINF error #define DEBUG_MISC 0x00008000 // misc info. // // HIGH WORD bit mask (0x0000FFFF) for high frequency debug output. // ie more verbose. // #define DEBUG_MESSAGE 0x00010000 // binl message output. #define DEBUG_OSC 0x00040000 // OSChooser message output. #define DEBUG_OSC_ERROR 0x00080000 // OSChooser error output. #define DEBUG_BINL_CACHE 0x00100000 // Binl client cache output. #define DEBUG_ROGUE 0x00200000 // rogue processing. #define DEBUG_POLICY 0x00400000 // group policy filtering. #define DEBUG_THREAD 0x04000000 // debug message contains threadid #define DEBUG_MEMORY 0x08000000 // Memory Allocation Tracking Spew #define DEBUG_FUNC 0x10000000 // function entry #define DEBUG_STARTUP_BRK 0x40000000 // breakin debugger during startup. #define DEBUG_LOG_IN_FILE 0x80000000 // log debug output in a file. VOID DebugInitialize( VOID ); VOID DebugUninitialize( VOID ); VOID BinlOpenDebugFile( IN BOOL ReopenFlag ); VOID BinlServerEventLog( DWORD EventID, DWORD EventType, DWORD ErrorCode ); extern const char g_szTrue[]; extern const char g_szFalse[]; #define BOOLTOSTRING( _f ) ( _f ? g_szTrue : g_szFalse ) VOID BinlPrintRoutine( IN DWORD DebugFlag, IN LPSTR Format, ... ); #define BinlPrint(_x_) BinlPrintRoutine _x_; #if DBG VOID BinlDumpMessage( DWORD BinlDebugFlag, LPDHCP_MESSAGE BinlMessage ); VOID BinlAssertFailed( LPSTR FailedAssertion, LPSTR FileName, DWORD LineNumber, LPSTR Message ); #define BinlAssert(Predicate) \ { \ if (!(Predicate)) {\ BinlAssertFailed( #Predicate, __FILE__, __LINE__, NULL ); \ } \ } #define BinlAssertMsg(Predicate, Message) \ { \ if (!(Predicate)) {\ BinlAssertFailed( #Predicate, __FILE__, __LINE__, #Message ); \ } \ } #define BinlPrintDbg(_x_) BinlPrintRoutine _x_; #define TraceFunc( _func ) BinlPrintDbg(( DEBUG_FUNC, "%s", _func )); // // Leak detection // #define INITIALIZE_TRACE_MEMORY InitializeCriticalSection( &g_TraceMemoryCS ); #define UNINITIALIZE_TRACE_MEMORY DebugMemoryCheck( ); DeleteCriticalSection( &g_TraceMemoryCS ); CRITICAL_SECTION g_TraceMemoryCS; HGLOBAL DebugAlloc( LPCSTR pszFile, UINT uLine, LPCSTR pszModule, UINT uFlags, DWORD dwBytes, LPCSTR pszComment ); void DebugMemoryDelete( HGLOBAL hglobal ); HGLOBAL DebugMemoryAdd( HGLOBAL hglobal, LPCSTR pszFile, UINT uLine, LPCSTR pszModule, UINT uFlags, DWORD dwBytes, LPCSTR pszComment ); HGLOBAL DebugFree( HGLOBAL hglobal ); void DebugMemoryCheck( ); #else // not DBG #define INITIALIZE_TRACE_MEMORY #define UNINITIALIZE_TRACE_MEMORY #define BinlPrintDbg(_x_) #define TraceFunc( _func ) #define BinlAssert(_x_) #define BinlAssertMsg(_x_, _y_) #define BinlDumpMessage(_x_, _y_) #define DebugMemoryAdd( x1, x2, x3, x4, x5, x6, x7 ) #endif // not DBG