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.
| Tags | Software Development Debuggers |
|---|---|
| Licenses | GPL |
| Operating Systems | POSIX Solaris Linux HP-UX BSD OpenBSD NetBSD FreeBSD AIX Mac OS X |
| Implementation | C |
Recent releases


Changes: Some missing backtraces were fixed. An atexit replacement was implemented to catch allocations that are freed by previously installed atexit handlers. Deeper backtraces are stored, and internal recursions are handled.


Changes: This release fixes a bug by removing a limitation of how many reallocs of the same block memcheck could handle properly.


Changes: The build system was reverted to use a non-CVS version of libtool/autoconf, since the CVS version caused shared libraries to be created without the '.so' extension in the name. Partial support for the sparc64-unknown-linux platform was added. The "Never freed" message is no longer written at the termination of the application in a synchronous manner. This results in a significant speed-up at process termination.


Changes: Two new optional features are now available: logging of "large" allocations and deliberately running out-of-memory. Stacktraces are now supported on systems with glibc. The amount of logging can now be controlled. Most of the previously partially-supported platforms are now completely supported. New platforms supported include i386-pc-sco3.2v5.0.4, s390-ibm-linux-gnu, sparc-unknown-netbsdelf1.5, and x86_64-unknown-linux-gnu. Configuration is now done with a single MEMCHECK environment variable.


No changes have been submitted for this release.