:
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
class MemChecker
{
friend class foo;
struct foo
{
HANDLE hLogFile;
_CrtMemState _ms;
foo()
{
hLogFile = CreateFile(TEXT("memory_leaks.txt"), GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
_CrtSetReportMode( _CRT_WARN, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG);
_CrtSetReportFile( _CRT_WARN, hLogFile );
_CrtMemCheckpoint(&_ms);
}
~foo()
{
_CrtMemDumpAllObjectsSince(&_ms);
CloseHandle(hLogFile);
}
};
static foo obj;
};
MemChecker::foo MemChecker::obj;
, , , .
, ( ). : , , , _CrtSetBreakAlloc (2789444 *), , , , ( ).
_CRTDBG_MODE_FILE, _CRTDBG_MODE_DEBUG, , .
* , {2789444} 0x0000000006103CB0, 32 .