Valgrind is an award-winning suite of tools for debugging and profiling Linux programs. With the tools that come with Valgrind, you can automatically detect many memory management and threading bugs, avoiding hours of frustrating bug-hunting, making your programs more stable. You can also perform detailed profiling, to speed up and reduce memory use of your programs. Read more hot
ccmalloc is an easy to use memory profiling and malloc debugging library for C and C++ programs. It can finds leaks, multiple deallocations, and memory corruptions.
Checker is a tool which finds memory errors at runtime. Its primary function is to emit a warning when the program reads an uninitialized variable or memory area, or when the program accesses an unallocated memory area.
cppcheck is a static C/C++ code analyzer that checks for memory leaks, mismatching allocation-deallocation, buffer overrun, and many more problems. Its goal is to produce no false positives.
DBGMEM is a feature rich memory debugger for C and C++ programs; it currently works for Linux only. It helps you to find problems such as memory leaks, heap memory corruption misuse, illegal arguments to selected standard library functions, stack corruption, and the use of freed or uninitialized heap memory. It is extensible via an API. The tool overrides GLIBC memory allocation functions and memory and string manipulation functions in order to add its features.
The debug memory allocation or dmalloc library has been designed as a drop in replacement for the system's malloc, realloc, calloc, free and other memory management routines while providing powerful debugging facilities configurable at runtime. These facilities include such things as memory-leak tracking, fence-post write detection, file/line number reporting, and general logging of statistics.
Dnmalloc is an allocator that keeps heap management data separate from the heap itself. As a result, dnmalloc is not vulnerable to corruption of the heap management information by heap buffer overflows or double free errors.
Electric Fence is a malloc() debugger for Linux and Unix. This will stop your program on the exact instruction that overruns or under-runs a malloc() buffer.
GMemLogger is a developer's tool to trace how you allocate memory and if you have freed it or not.
Guarded Memory Move
The Guarded Memory Move tool is useful for studying buffer overflows and catching them together with a "good" stack image. It uses dynamic function call interception to catch the most common functions that are used by attackers to exploit stack buffers. It uses the LD_PRELOAD capability, and, on discovering an exploit, will produce a core dump with the necessary information to debug the exploit and fix the software.
halloc is an extension to a standard malloc/free interface that simplifies tasks of memory disposal when allocated structures exhibit hierarchical properties.
heaptrack is a heap memory profiler.
IDH is a debug heap for C/C++ on several platforms. It detects most overwrites, stale pointers, wild pointers, double-free and invalid mix of heap management functions. It can also be used for memory leak detection and heap statistics.
LeakTracer is a tiny leak tracer for C++ programs. It uses gdb to show you the lines of code that have memory leaks, together with leak count and size.
Leaky is a program which will help you find memory leaks, and as of late, help you debug reference count problems with xpcom objects.
libYaMa is a memory allocator with leak tracking and some anti-heap corruption facilities. It grew out of an attempt to build array bound overwrite detection into LeakTrac.
LMDBG is a collection of small tools for collecting and analyzing the logs of malloc/realloc/memalign/free function calls
log-malloc is a simple malloc/free logger. It is very small and has no dependencies. No configuration is necessary. It logs parameters, return values, and the call stack. There is no need to rebuild the application that will be logged.
MemCheck Deluxe is a memory tracking program that allows one to find where programs and libraries leak memory. It also tracks the largest and smallest allocations, as well as the program's maximum memory usage.
Memory Allocation Checker
Memcheck provides the ability to fault on pointer overrun (read or write) or freed pointer deference (read or write), logs double free and realloc of already freed pointers and memory not freed on exit, checks for pointer underrun on free and realloc, optionally reverses the behavior of overrun and underrun, "churns" reallocations to always return a different pointer, and logs pointer overruns instead of faulting. It has a very small performance impact, with the tradeoff of a large memory footprint. It includes a validation test suite to verify correctness of the library. It is tested on a variety of architectures, including Alpha, ARM, HPPA, PPC, ix86, IA64, rs6000, S390, SPARC, and SPARC64. It is tested on a variety of platforms, including OSF, FreeBSD, NetBSD, OpenBSD, Linux, HP/UX, Mac OSX, AIX, SCO, and Solaris.
Memory Allocation Tracking
Memory Allocation Tracking is a portable thread-safe memory allocation tracker for C. It warns about unfreed chunks and pointers passed to free() that have not previously been allocated, or were already freed.
memwatch is a memory leak detection tool. Basically, you add a header file to your souce code files, and compile with MEMWATCH defined or not. The header file MEMWATCH.H contains detailed instructions.
nedmalloc an alternative malloc implementation written in C for multiple threads without lock contention based on dlmalloc v2.8.3. It is more or less a newer implementation of ptmalloc2, the standard allocator in Linux (which is based on dlmalloc v2.7.0) but also contains a per-thread cache for maximum CPU scalability. It comes under the Boost software license which permits commercial usage.
Nitro Technologies Memory Checker
Nitro Technologies Memory Checker makes tracking down memory leaks in C programs simple. It wraps strdup/malloc/free and tracks memory usage, allowing a report containing information on all allocated memory (and what function allocated it, which line, which file, etc.) at any time during the running of your program.
Not Just Another Malloc Debugger is a malloc debugger which features protecting already freed memory, multiple architecture support, an ncurses frontend, and excellent documentation.