% mpatrol % A library for controlling and tracing dynamic memory allocations. % Copyright (C) 1997-2001 Graeme S. Roy <graeme.roy@analog.com> % % This library is free software; you can redistribute it and/or % modify it under the terms of the GNU Library General Public % License as published by the Free Software Foundation; either % version 2 of the License, or (at your option) any later version. % % This library is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU % Library General Public License for more details. % % You should have received a copy of the GNU Library General Public % License along with this library; if not, write to the Free % Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, % MA 02111-1307, USA. % LaTeX document containing the complete mpatrol source code % $Id: source.tex,v 1.5 2001/09/03 20:47:41 graeme Exp $ \documentclass[a4paper,final]{report} \usepackage{a4wide} \usepackage{lgrind} \ifx\pdfoutput\undefined \else \pdfcompresslevel=9 \pdfoutput=1 \usepackage{thumbpdf} \usepackage[pdftex]{hyperref} \fi \newcommand{\version}[0]{1.4.7} \newcommand{\srcfile}[2]{\section{\texttt{#2}} \lgrindfile{#1/#2}} \begin{document} \title{\textbf{mpatrol source code} \\ version \version} \author{Graeme S. Roy $<$graeme.roy@analog.com$>$} \maketitle \begin{abstract} The mpatrol library is yet another link library that attempts to diagnose run-time errors that are caused by the wrong use of dynamically allocated memory. If you don't know what the \texttt{malloc()} function or \texttt{operator new[]} do then this library is probably not for you. You have to have a certain amount of programming expertise and a knowledge of how to run a command line compiler and linker before you should attempt to use this. Along with providing a comprehensive and configurable log of all dynamic memory operations that occurred during the lifetime of a program, the mpatrol library performs extensive checking to detect any misuse of dynamically allocated memory. All of this functionality can be integrated into existing code through the inclusion of a single header file at compile-time. On UNIX and Windows platforms (and AmigaOS when using \textbf{gcc}) this may not even be necessary as the mpatrol library can be linked with existing object files at link-time or, on some platforms, even dynamically linked with existing programs at run-time. All logging and tracing output from the mpatrol library is sent to a separate log file in order to keep its diagnostics separate from any that the program being tested might generate. 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. \end{abstract} \pagenumbering{roman} \tableofcontents \chapter{mpatrol library source files} \markright{mpatrol library source files} \pagestyle{myheadings} \pagenumbering{arabic} \srcfile{src}{target.h} \newpage \srcfile{src}{config.h} \newpage \srcfile{src}{list.h} \newpage \srcfile{src}{list.c} \newpage \srcfile{src}{tree.h} \newpage \srcfile{src}{tree.c} \newpage \srcfile{src}{slots.h} \newpage \srcfile{src}{slots.c} \newpage \srcfile{src}{utils.h} \newpage \srcfile{src}{utils.c} \newpage \srcfile{src}{memory.h} \newpage \srcfile{src}{memory.c} \newpage \srcfile{src}{heap.h} \newpage \srcfile{src}{heap.c} \newpage \srcfile{src}{alloc.h} \newpage \srcfile{src}{alloc.c} \newpage \srcfile{src}{info.h} \newpage \srcfile{src}{info.c} \newpage \srcfile{src}{stack.h} \newpage \srcfile{src}{stack.c} \newpage \srcfile{src}{addr.h} \newpage \srcfile{src}{addr.c} \newpage \srcfile{src}{strtab.h} \newpage \srcfile{src}{strtab.c} \newpage \srcfile{src}{symbol.h} \newpage \srcfile{src}{symbol.c} \newpage \srcfile{src}{signals.h} \newpage \srcfile{src}{signals.c} \newpage \srcfile{src}{mutex.h} \newpage \srcfile{src}{mutex.c} \newpage \srcfile{src}{diag.h} \newpage \srcfile{src}{diag.c} \newpage \srcfile{src}{option.h} \newpage \srcfile{src}{option.c} \newpage \srcfile{src}{leaktab.h} \newpage \srcfile{src}{leaktab.c} \newpage \srcfile{src}{profile.h} \newpage \srcfile{src}{profile.c} \newpage \srcfile{src}{trace.h} \newpage \srcfile{src}{trace.c} \newpage \srcfile{src}{inter.h} \newpage \srcfile{src}{inter.c} \newpage \srcfile{src}{malloc.c} \newpage \srcfile{src}{cplus.c} \newpage \srcfile{src}{sbrk.h} \newpage \srcfile{src}{sbrk.c} \newpage \srcfile{src}{machine.h} \newpage \srcfile{src}{machine.c} \newpage \srcfile{src}{version.h} \newpage \srcfile{src}{version.c} \newpage \srcfile{src}{mpatrol.h} \newpage \srcfile{src}{library.c} \chapter{mpalloc library source files} \markright{mpalloc library source files} \srcfile{src}{mpalloc.c} \newpage \srcfile{src}{mpfailure.c} \newpage \srcfile{src}{mpsetfail.c} \newpage \srcfile{src}{mpmalloc.c} \newpage \srcfile{src}{mpcalloc.c} \newpage \srcfile{src}{mpstrdup.c} \newpage \srcfile{src}{mprealloc.c} \newpage \srcfile{src}{mpalloc.h} \newpage \srcfile{src}{mpdebug.h} \newpage \srcfile{src}{library2.c} \chapter{mpatrol tool source files} \markright{mpatrol tool source files} \srcfile{tools}{dbmalloc.h} \newpage \srcfile{tools}{dbmalloc.c} \newpage \srcfile{tools}{dmalloc.h} \newpage \srcfile{tools}{dmalloc.c} \newpage \srcfile{tools}{heapdiff.h} \newpage \srcfile{tools}{heapdiff.c} \newpage \srcfile{tools}{mgauge.h} \newpage \srcfile{tools}{mgauge.c} \newpage \srcfile{tools}{mtrace.h} \newpage \srcfile{tools}{mtrace.c} \chapter{mpatrol utility source files} \markright{mpatrol utility source files} \srcfile{src}{graph.h} \newpage \srcfile{src}{graph.c} \newpage \srcfile{src}{getopt.h} \newpage \srcfile{src}{getopt.c} \newpage \srcfile{src}{mpatrol.c} \newpage \srcfile{src}{mprof.c} \newpage \srcfile{src}{mptrace.c} \newpage \srcfile{src}{mleak.c} \newpage \srcfile{bin}{mpsym} \newpage \srcfile{bin}{mpedit} \newpage \srcfile{bin}{hexwords} \end{document}