Memory Leak Detection
The below list of options are simplest ways to detect memory leak in c\c++ code.
1. A Cross-Platform Memory Leak Detector
Audience: Cross Platform developers who want to detect memory leaks in their applications. Detects leak by only new.
How-To Details: http://wyw.dcweb.cn/leakage.htm
Source Code: http://sourceforge.net/projects/nvwa/files/latest/download?source=files
References:
http://ntcoder.com/bab/2008/08/13/debug_new-explained/
This does not detect leak by malloc or calloc.
Hands-On:
Code:
#include <stdlib.h>
#include "debug_new.h"
int main(int argc, char *argv[]) {
int *var = new int(5);
char *tmp = (char *) malloc(5);
char *test = (char *) calloc(8,sizeof(char));
return 0;
}
Compile:
g++ testmemleak.cpp debug_new.cpp -o test
Run:
./test
Leaked object at 0xf3a0060 (size 4, testmemleak.cpp:6)
*** 1 leaks found
2. Detecting Memory Leaks using the CrtDbg Library
Audience: Win32/Win64 developers who want to detect memory leaks in their applications. Detects leak by both new and malloc\calloc.
How-To Details: http://www.codeproject.com/Articles/66324/Detecting-Memory-Leaks-using-the-CrtDbg-Library
After many years of working on a general-purpose C++ library using the Microsoft MSVC compiler in Visual Studio, we are now porting it to Linux/Mac OS X (pray for us). I have become accustomed and quite fond of the simple memory leak detection mechanism in MSVC:
Other References:
http://sourceforge.net/projects/crtdbg4wince/
http://stackoverflow.com/questions/8718758/using-crtdumpmemoryleaks-to-display-data-to-console
http://stackoverflow.com/questions/2153776/how-to-use-crtdumpmemoryleaks