74 lines
1.1 KiB
C++
74 lines
1.1 KiB
C++
/*++
|
|
|
|
Copyright (c) 1990 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
newdelp.hxx
|
|
|
|
Abstract:
|
|
|
|
This module contains the private definitions used by Ulib's
|
|
implementation of the new and delete operators and the CRT's malloc,
|
|
calloc, realloc and free functions.
|
|
|
|
Author:
|
|
|
|
David J. Gilman (davegi) 07-Dec-1990
|
|
|
|
Environment:
|
|
|
|
ULIB, User Mode
|
|
|
|
--*/
|
|
|
|
//
|
|
// MEM_BLOCK header signature type and value.
|
|
//
|
|
|
|
DEFINE_TYPE( ULONG, MEM_BLOCKSIG );
|
|
CONST MEM_BLOCKSIG Signature = 0xDEADDEAD;
|
|
|
|
//
|
|
// Maximum length of caller's file name.
|
|
//
|
|
|
|
CONST ULONG MaxFileLength = 20;
|
|
|
|
//
|
|
// Maximum size of call stack recorded.
|
|
//
|
|
|
|
CONST ULONG MaxCallStack = 20;
|
|
|
|
//
|
|
// MEM_BLOCK is the header attached to all allocated memory blocks.
|
|
// Do not change the order of these fields without fixing the initialization
|
|
// of the dummy MEM_BLOCK in newdel.cxx.
|
|
//
|
|
|
|
struct _MEM_BLOCK {
|
|
_MEM_BLOCK* pmemNext;
|
|
_MEM_BLOCK* pmemPrev;
|
|
MEM_BLOCKSIG memsig;
|
|
ULONG line;
|
|
ULONG size;
|
|
STR file[ MaxFileLength ];
|
|
DWORD call[ MaxCallStack ];
|
|
};
|
|
|
|
DEFINE_TYPE( struct _MEM_BLOCK, MEM_BLOCK );
|
|
|
|
//
|
|
// Returns the root of the stack frame list.
|
|
//
|
|
|
|
extern "C" {
|
|
|
|
VOID
|
|
DoStackTrace(
|
|
DWORD CallStack[]
|
|
);
|
|
|
|
};
|