You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
192 lines
4.7 KiB
192 lines
4.7 KiB
/*++
|
|
|
|
Copyright (c) 1999 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
debug.h
|
|
|
|
Abstract:
|
|
|
|
This file contains debugging macros for the webdav client.
|
|
|
|
Author:
|
|
|
|
Andy Herron (andyhe) 30-Mar-1999
|
|
|
|
Environment:
|
|
|
|
User Mode - Win32
|
|
|
|
Revision History:
|
|
|
|
|
|
--*/
|
|
|
|
#ifndef DAV_DEBUG_H
|
|
#define DAV_DEBUG_H
|
|
|
|
#if DBG
|
|
|
|
//
|
|
// Memory allocation and tracking
|
|
//
|
|
#define DEBUG_OUTPUT_BUFFER_SIZE 1024
|
|
typedef struct _MEMORYBLOCK {
|
|
HLOCAL hlocal;
|
|
DWORD dwBytes;
|
|
UINT uFlags;
|
|
LPCSTR pszFile;
|
|
UINT uLine;
|
|
LPCSTR pszModule;
|
|
LPCSTR pszComment;
|
|
struct _MEMORYBLOCK *pNext;
|
|
} MEMORYBLOCK, *LPMEMORYBLOCK;
|
|
|
|
#define DEFAULT_MAXIMUM_DEBUGFILE_SIZE (1024 * 1024)
|
|
|
|
//
|
|
// Controls access to the memeory tracing routines. We need this since multiple
|
|
// threads could be allocating memory simultaneously.
|
|
//
|
|
EXTERN CRITICAL_SECTION g_TraceMemoryCS;
|
|
|
|
//
|
|
// List of memory blocks (see the structure defined above) being maintained for
|
|
// tracking memory.
|
|
//
|
|
EXTERN LPVOID g_TraceMemoryTable INIT_GLOBAL(NULL);
|
|
|
|
//
|
|
// Controls access to the debug log file. We need this since multiple threads
|
|
// could be writing to it simultaneously.
|
|
//
|
|
EXTERN CRITICAL_SECTION DavGlobalDebugFileCritSect;
|
|
|
|
//
|
|
// These are used in persistent logging. They define the file handle of the
|
|
// file to which the debug o/p is written, the max file size and the path
|
|
// of the file.
|
|
//
|
|
EXTERN HANDLE DavGlobalDebugFileHandle INIT_GLOBAL(INVALID_HANDLE_VALUE);
|
|
EXTERN ULONG DavGlobalDebugFileMaxSize INIT_GLOBAL(DEFAULT_MAXIMUM_DEBUGFILE_SIZE);
|
|
EXTERN LPWSTR DavGlobalDebugSharePath;
|
|
|
|
//
|
|
// This flag (value) is used in filtering/controlling the debug messages.
|
|
//
|
|
EXTERN ULONG DavGlobalDebugFlag;
|
|
|
|
#define DEBUG_DIR L"\\debug"
|
|
#define DEBUG_FILE L"\\davclnt.log"
|
|
#define DEBUG_BAK_FILE L"\\davclnt.bak"
|
|
|
|
HLOCAL
|
|
DebugAlloc(
|
|
LPCSTR pszFile,
|
|
UINT uLine,
|
|
LPCSTR pszModule,
|
|
UINT uFlags,
|
|
DWORD dwBytes,
|
|
LPCSTR pszComment
|
|
);
|
|
|
|
#define DavAllocateMemory(x) ( \
|
|
DebugAlloc(__FILE__, \
|
|
__LINE__, \
|
|
"DAV", \
|
|
LMEM_FIXED | LMEM_ZEROINIT, \
|
|
x, \
|
|
#x) \
|
|
)
|
|
|
|
HLOCAL
|
|
DebugFree(
|
|
HLOCAL hglobal
|
|
);
|
|
|
|
#define DavFreeMemory(x) DebugFree(x)
|
|
|
|
VOID
|
|
DebugInitialize(
|
|
VOID
|
|
);
|
|
|
|
VOID
|
|
DebugUninitialize(
|
|
VOID
|
|
);
|
|
|
|
|
|
VOID
|
|
DavAssertFailed(
|
|
LPSTR FailedAssertion,
|
|
LPSTR FileName,
|
|
DWORD LineNumber,
|
|
LPSTR Message
|
|
);
|
|
|
|
#define DavAssert(Predicate) { \
|
|
if (!(Predicate)) { \
|
|
DavAssertFailed( #Predicate, __FILE__, __LINE__, NULL ); \
|
|
} \
|
|
}
|
|
|
|
#define DavAssertMsg(Predicate, Message) { \
|
|
if (!(Predicate)) { \
|
|
DavAssertFailed( #Predicate, __FILE__, __LINE__, #Message ); \
|
|
} \
|
|
}
|
|
|
|
#define IF_DEBUG(flag) if (DavGlobalDebugFlag & (DEBUG_ ## flag))
|
|
|
|
//
|
|
// The debug flags used.
|
|
//
|
|
#define DEBUG_CONNECT 0x00000001 // connect events
|
|
#define DEBUG_ERRORS 0x00000002 // errors
|
|
#define DEBUG_INIT 0x00000004 // init events
|
|
#define DEBUG_SCAVENGER 0x00000008 // sacvenger error
|
|
#define DEBUG_REGISTRY 0x00000010 // Registry operation
|
|
#define DEBUG_MISC 0x00000020 // misc info.
|
|
#define DEBUG_RPC 0x00000040 // debug rpc messages
|
|
#define DEBUG_MEMORY 0x00000080 // Memory Allocation Tracking Spew
|
|
#define DEBUG_FUNC 0x00000100 // function entry/exit
|
|
#define DEBUG_STARTUP_BRK 0x00000200 // breakin debugger during startup.
|
|
#define DEBUG_LOG_IN_FILE 0x00000400 // log debug output in a file.
|
|
#define DEBUG_DEBUG 0x00000800 // scope the debugging
|
|
|
|
VOID
|
|
DavPrintRoutine(
|
|
IN DWORD DebugFlag,
|
|
IN LPSTR Format,
|
|
...
|
|
);
|
|
|
|
#define DavPrint(_x_) DavPrintRoutine _x_;
|
|
|
|
VOID
|
|
DebugMemoryCheck(
|
|
VOID
|
|
);
|
|
|
|
#else // not DBG
|
|
|
|
#define DavAllocateMemory(x) LocalAlloc( LMEM_FIXED | LMEM_ZEROINIT, x)
|
|
#define DavFreeMemory(x) LocalFree(x)
|
|
#define IF_DEBUG(flag) if (FALSE)
|
|
#define DavPrint(_x_)
|
|
#define DavAssert(_x_)
|
|
#define DavAssertMsg(_x_, _y_)
|
|
|
|
#endif // DBG
|
|
|
|
VOID
|
|
DavClientEventLog(
|
|
DWORD EventID,
|
|
DWORD EventType,
|
|
DWORD ErrorCode
|
|
);
|
|
|
|
#endif // DAV_DEBUG_H
|
|
|