Projects / Memory Allocation Checker

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.

Operating Systems

Recent releases

  •  08 Jul 2006 21:12

    Release Notes: 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.

    •  18 Jul 2004 04:14

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

      •  28 Jul 2003 16:04

        Release Notes: 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.

        •  16 Jul 2003 03:25

          Release Notes: 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.

          •  29 Aug 2002 20:48

            No changes have been submitted for this release.


            Project Spotlight


            A Fluent OpenStack client API for Java.


            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.