Source code of Windows XP (NT5)
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.
|
|
#include "precomp.h"
#pragma hdrstop
#ifdef DEBUG /*** THIS WHOLE FILE ***/
unsigned long g_BreakAlloc = (unsigned long)-1;
/* U P D A T E C R T D B G S E T T I N G S */ /*-------------------------------------------------------------------------
%%Function: UpdateCrtDbgSettings
Update the C runtime debug memory settings -------------------------------------------------------------------------*/ VOID UpdateCrtDbgSettings(void) { #if 0
// This depends on the use of the debug c runtime library
int tmpFlag = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG);
// Always enable memory leak checking debug spew
// tmpFlag |= _CRTDBG_LEAK_CHECK_DF;
// Release memory just like the retail version
tmpFlag &= ~_CRTDBG_DELAY_FREE_MEM_DF;
// Don't bother checking the entire heap
tmpFlag &= ~_CRTDBG_CHECK_ALWAYS_DF; _CrtSetDbgFlag(tmpFlag); #endif // 0
}
#if 0
int _cdecl MyAllocHook ( int allocType, void *userData, size_t size, int blockType, long requestNumber, const char *filename, int lineNumber ) { char buf[256]; wsprintf(buf, "%s {%d}: %d bytes on line %d file %s\n\r", allocType == _HOOK_ALLOC ? "ALLOC" : ( allocType == _HOOK_REALLOC ? "REALLOC" : "FREE" ), requestNumber, size, lineNumber, filename ); OutputDebugString(buf); return TRUE; } #endif // 0
/* I N I T D E B U G M E M O R Y O P T I O N S */ /*-------------------------------------------------------------------------
%%Function: InitDebugMemoryOptions
Initilize the runtime memory -------------------------------------------------------------------------*/ BOOL InitDebugMemoryOptions(void) { #if 0
// _asm int 3; chance to set _crtBreakAlloc - use debugger or uncomment
_CrtSetBreakAlloc(g_BreakAlloc);
UpdateCrtDbgSettings();
_CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_WNDW); // create a message box on errors
{ // To track down memory leaks, set cAlloc to the allocation number
LONG cAlloc = 0; // Allocation number
if (0 != cAlloc) _CrtSetBreakAlloc(cAlloc); }
#ifdef MNMSRVC_SETALLOCHOOK
_CrtSetAllocHook ( MyAllocHook ); #endif // MNMSRVC_SETALLOCHOOK
#endif // 0
return TRUE; }
VOID DumpMemoryLeaksAndBreak(void) { #if 0
if ( _CrtDumpMemoryLeaks() ) { // _asm int 3; Uncomment to break after leak spew
} #endif // 0
}
#endif /* DEBUG - whole file */
|