phlebas
April 13th, 1999, 11:55 PM
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,
Regards,
|
Click to See Complete Forum and Search --> : Memory Leaks phlebas April 13th, 1999, 11:55 PM 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, Gomez Addams April 14th, 1999, 12:40 AM 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. codeguru.com
Copyright Internet.com Inc., All Rights Reserved. |