Does anyone know of any usefull VC macros, addons, anythings that will help me track what objects have been allocated on the heap but not deallocated?
Regards,
Printable View
Does anyone know of any usefull VC macros, addons, anythings that will help me track what objects have been allocated on the heap but not deallocated?
Regards,
There are two I use ALL THE TIME. I emphasize this because they are quite
effective and help you track down memory leaks very well. The first is this :
#ifdef _DEBUG
#define new DEBUG_NEW
#endif // _DEBUG
Use this in C++ programs. Check the docs for specific usage instructions.
I think that it must follow IMPLEMENT_DYNCREATE statements to work correctly.
The second thing I always do is this :
#ifdef _DEBUG
#define _CRTDBG_MAP_ALLOC
#include <crtdbg.h>
#endif
This is for use with standard C run-time library stuff.
This will help track malloc and free calls.
Lastly, I use this little function :
void SetMemDbgFlag( void )
{
#ifdef _DEBUG
int tmp = _CrtSetDbgFlag( _CRTDBG_REPORT_FLAG );
tmp |= _CRTDBG_LEAK_CHECK_DF;
tmp &= ~(_CRTDBG_CHECK_CRT_DF );
_CrtSetDbgFlag( tmp );
#endif // _DEBUG
}
This helps enable memory leak detection. I call this in InitInstance of MFC apps.
When you use these things, it also pays off to use CGdiObject-derived objects
for drawing because they work with the memory tracking and their destructors
will destroy the resource automatically. This helps you track resource leaks.
Using these techniques I have made my app leak-free so that it runs for months
at a time with no problems.