Projects / mpatrol


mpatrol is a link library that attempts to diagnose run-time errors that are caused by the wrong use of dynamically allocated memory, including writing to free memory and memory leaks. Along with providing a comprehensive and configurable log of all dynamic memory operations (such as malloc(), operator new, etc.) that occurred during the lifetime of a program, the mpatrol library performs extensive checking to detect any misuse of dynamically allocated memory and has support for both memory allocation profiling and tracing. A wide variety of library settings can also be changed at run-time via an environment variable, thus removing the need to recompile or relink in order to change the library's behaviour.

Operating Systems

Recent releases

  •  10 Jan 2002 12:12

    Release Notes: This release adds better logging for diagnostic messages, much improved autoconf, automake and libtool support, and provisional HTML log file support with the HTML option. The library now checks to ensure that there were not any problems writing the profiling and tracing output files. mpatrol also now has better Tru64 thread-safe support.

    •  06 Sep 2001 15:49

      Release Notes: The problems with building Windows DLLs were fixed. The problems with the stack unwinding on Tru64 were fixed. The mpsym command now works on LynxOS. The mpedit command now works on FreeBSD and supports the elvis, pico, and nano editors. The ability to build a Debian package was added.

      •  28 Aug 2001 14:34

        Release Notes: Many new arguments that are passed to prologue, epilogue, and low memory callback functions were added. The tools that already use them were updated. The Windows DLL version of the mpatrol library now correctly exports the C++ functions defined within it. The maximum input line length for the mptrace and mleak commands was increased due to the excessive length of some C++ identifiers. The UNIX Makefile was improved when building mptrace with GUI support. The ability to build full documentation from the source code was added. Skeleton autoconf, automake, and libtool support was added.

        •  19 Jun 2001 08:44

          Release Notes: Added the 'CHECKFORK' option in order to fix the 'fork()' problem on UNIX platforms explicitly. This had to be added because the fix in the previous release did not work for multithreaded programs on Linux. Added the 'HD_CONTENTS' flag to the heapdiff tool. Added the '--source' option to the mptrace command.

          •  05 Jun 2001 12:27

            Release Notes: Ability to read, write, compare and remove allocation contents files added. Support added for automatic compilation when 'TARGET=TARGET_ANY' and 'ARCH=ARCH_ANY' and added information about the platform in the log file. SuSE Linux is now supported. Ability to trace reallocations added. Fixed a problem on UNIX platforms when 'fork()' was called and the child process continued to make memory allocations. Fixed a bug when using 'alloca()' without full stack support. Added the '--hatf-file' option to the mptrace command to write out the trace file in HATF format. Also added running statistics to the '--verbose' option. Added the '--max-stack' option to the mleak command.

            Recent comments

            16 Mar 2006 08:09 krona

            Great stuff
            I have mpatrol working with VC6 and it took a little while to get it linking with my program but it works like a dream now. Found 2 lurking issues straight away :-)

            29 May 2001 19:24 rubensr

            Very good work
            I just started to use mpatrol a couple of days
            ago - it is really impressive! Was a little tricky
            to compile in FreeBSD 4.2, but it was worth it.

            Keep up the good work!



            Project Spotlight


            A Fluent OpenStack client API for Java.


            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.