143 lines
2.1 KiB
C
143 lines
2.1 KiB
C
/*++
|
||
|
||
Copyright (c) 1996 Microsoft Corporation
|
||
|
||
Module Name:
|
||
|
||
dbgmem.h
|
||
|
||
Abstract:
|
||
|
||
This module contains memory debug function prototypes and macros.
|
||
|
||
Author:
|
||
|
||
Jim Stewart January 8, 1997
|
||
|
||
Revision History:
|
||
|
||
Ofer Bar ( oferbar ) Oct 1, 1996 - Revision II changes
|
||
|
||
--*/
|
||
|
||
#ifdef DBG
|
||
//
|
||
// define the amount of symbol info to keep per function in the stack trace.
|
||
//
|
||
#define MAX_FUNCTION_INFO_SIZE 20
|
||
typedef struct {
|
||
|
||
DWORD_PTR Displacement; // displacement into the function
|
||
UCHAR Buff[MAX_FUNCTION_INFO_SIZE]; // name of function on call stack
|
||
|
||
|
||
} CALLER_SYM, *PCALLER_SYM;
|
||
|
||
//
|
||
// NOTE:
|
||
// If you change the structure of MEM_TRACKER, please make sure it's size
|
||
// aligned to 8-byte boundary
|
||
//
|
||
#define NCALLERS 5
|
||
typedef struct {
|
||
|
||
LIST_ENTRY Linkage;
|
||
PSZ szFile;
|
||
ULONG nLine;
|
||
ULONG nSize;
|
||
ULONG ulAllocNum;
|
||
CALLER_SYM Callers[NCALLERS];
|
||
ULONG ulCheckSum;
|
||
ULONG ulPad; // To make the struct aligned to 8-byte
|
||
|
||
} MEM_TRACKER, *PMEM_TRACKER;
|
||
|
||
|
||
BOOL
|
||
InitDebugMemory(
|
||
);
|
||
|
||
VOID
|
||
DeInitDebugMemory(
|
||
);
|
||
|
||
|
||
VOID
|
||
UpdateCheckBytes(
|
||
IN PMEM_TRACKER TrackMem
|
||
);
|
||
|
||
BOOL
|
||
FCheckCheckBytes(
|
||
IN PMEM_TRACKER TrackMem
|
||
);
|
||
|
||
BOOL
|
||
FCheckAllocatedMemory();
|
||
|
||
VOID
|
||
AddPamem(
|
||
IN PMEM_TRACKER TrackMem
|
||
);
|
||
|
||
VOID
|
||
RemovePamem(
|
||
IN PMEM_TRACKER TrackMem
|
||
);
|
||
|
||
VOID
|
||
GetCallStack(
|
||
IN PCALLER_SYM pdwCaller,
|
||
IN int cSkip,
|
||
IN int cFind
|
||
);
|
||
|
||
PVOID
|
||
AllocMemory(
|
||
IN DWORD nSize,
|
||
IN BOOL Calloc,
|
||
IN PSZ szFileName,
|
||
IN DWORD nLine
|
||
);
|
||
|
||
PVOID
|
||
ReAllocMemory(
|
||
IN PVOID pvOld,
|
||
IN DWORD nSizeNew,
|
||
IN PSZ szFileName,
|
||
IN DWORD nLine
|
||
);
|
||
|
||
VOID
|
||
FreeMemory(
|
||
IN PVOID pv,
|
||
IN PSZ szFileName,
|
||
IN DWORD nLine
|
||
);
|
||
|
||
BOOL
|
||
DumpAllocatedMemory();
|
||
|
||
BOOL
|
||
SearchAllocatedMemory(
|
||
IN PSZ szFile,
|
||
IN DWORD nLine
|
||
);
|
||
|
||
VOID
|
||
Trace(
|
||
IN DWORD Severity,
|
||
IN const CHAR *Format,
|
||
IN ...
|
||
);
|
||
|
||
BOOL
|
||
ControlCTermination(
|
||
IN DWORD ControlType
|
||
);
|
||
|
||
|
||
#endif // #ifdef DBG
|
||
|
||
|