Point to the git repository and new release section
[memprof-web.git] / index.html
blob4972a8ac0fa4d89441136c994849b351a1e8de89
1 <html>
2 <head>
3 <TITLE>MemProf</TITLE>
4 <LINK REL=STYLESHEET TYPE="text/css" HREF="bluestripe.css" TITLE="Bluestripe">
5 </head>
7 <body>
8 <H1>MemProf - Profiling and leak detection</H1>
10 <h2> Introduction </h2>
12 <p>
13 MemProf is a tool for profiling memory usage and finding
14 memory leaks. Its two major features are:
15 </p>
17 <ul>
18 <li> It can generate a profile how much memory was
19 allocated by each function in your program.</li>
21 <li> It can scan memory and find blocks that you've
22 allocated but are no longer referenced anywhere.</li>
23 </ul>
25 <p>
26 MemProf works by pre-loading a library to override the
27 C library's memory allocation functions and does not
28 require you to recompile your program.
29 </p>
31 <p>
32 One advantage MemProf has over some other similar
33 tools that are available is that it has a nice GUI
34 frontend and is relatively easy to use.
35 </p>
37 <h2> Changes in 0.6.x </h2>
38 <p>
39 The project was forked as the website vanished from the GNOME project
40 infrastructure, the current maintainer didn't respond to inquieries and
41 memprof is far too young too let it die. The code and releases will
42 be hosted here and hopefully one day it will be back on the GNOME
43 infrastructure.
44 </p>
46 <h2> Changes in 0.6 </h2>
47 <p>
48 The main attraction of 0.6 is that memprof now works again,
49 thanks to Michael Meeks. Other new features in the four years since 0.5.1
50 release include a rewritten profile module that handles recursion
51 better. Also a large number of bugs have been fixed.
52 </p>
54 <h2> Changes in 0.5.1 </h2>
55 <p>
56 0.5.1 reworks the way that libmemintercept.so works
57 to work a lot better with C++ and with threads.
58 (it fixes the infamous "Starter malloc size exceeded" bug)
59 It also changes the data structures in the main
60 program to use considerably less memory.
61 </p>
63 <h2> Changes in 0.5.0 </h2>
64 <p>
65 The big change in this release is a port to GTK+-2.0
66 and GNOME-2.0, done by Kristian Rietveld. There are
67 also quite a few bug fixes since 0.4.1.
68 </p>
70 <h2> Changes in 0.4.1 </h2>
71 <p>
72 This is mostly a bug fix release - it fixes problems with
73 recent versions of libc, a crash when using menu accelerators,
74 a problem with leaving sockets around, and so forth.
75 </p>
76 <p>
77 It also includes a bunch more translations and a feature
78 to do regular-expression based exclusion of funtions
79 from Martin Baulig.
80 </p>
82 <h2> Changes in 0.4.0 </h2>
83 <p>
84 The backend in 0.4.0 has been almost totally rewritten
85 to support profiling threaded programs and to follow
86 the children of programs that fork.
87 </p>
88 <p>
89 The front end has also been improved in a number of
90 ways, translations have been added for 12 languages,
91 and numerous bugs have been fixed by myself and others.
92 </p>
93 <p>
94 Numerous bugs have most likely also been added, so please
95 try it out, find them, and let me know.
96 </p>
98 <h2> Requirements </h2>
101 For the interface, memprof requires:
102 </p>
104 <ul>
105 <li>GTK+ 2.0</li>
106 <li>GConf 2.0</li>
107 <li>libgnomeui 2.0</li>
108 <li>libglade 2.0</li>
109 </ul>
112 These (or newer versions) are all available from <a href="http://ftp.gnome.org/pub/GNOME/sources/">http://ftp.gnome.org/pub/GNOME/sources/</a>
113 but if binary packages are available from your distribution,
114 it's much easier to install them that way.
115 </p>
117 <ul>
118 <li>libbfd and libiberty from the GNU binutils distribution.
119 (Debian users will probably need to install the binutils-dev package)</li>
120 <li>Linux (kernel version 2.2 will work better)</li>
121 <li>GNU libc (2.0 or or newer will work, but 2.0 may produce warnings
122 when compiling. Most recent development has been done with version 2.3.)</li>
123 </ul>
125 <h2> Screenshots </h2>
127 <ul>
128 <li> <a href="memprof.jpg">GTK+-1.2 based memprof</a></li>
129 <li> <a href="memprof-gtk2.jpg">GTK+-2 based memprof (0.5 series)</a></li>
130 </ul>
132 <h2> Get the source </h2>
134 <ul>
135 <li> You can <a href="http://repo.or.cz/w/memprof.git">browse the sourcecode.</a> or
136 use git to get the respotitory. <pre>git clone git://repo.or.cz/memprof.git</pre> </li>
137 <li> <a href="http://www.secretlabs.de/projects/memprof/releases">Current tarballs</a></li>
138 </ul>
140 <h2> Frequently asked questions </h2>
142 <dl>
143 <dt><i>What do the colors mean?</i></dt>
144 <dd>Yellow = Allocated<br>
145 Blue = Allocated then freed (high-water-mark)<br>
146 Red = Leaked (after you press the "Leaks" toolbar button)</dd>
147 <dt><i>Is there any documentation?</i></dt>
148 <dd>Not currently, no. Contributions would be appreciated.<br></dd>
149 </dl>
151 <h2> Mailing List </h2>
154 Discussion of using and developing Memprof occurs on
155 <a href="mailto:memprof-list@gnome.org">memprof-list@gnome.org</a>.
156 <a href="http://mail.gnome.org/mailman/listinfo/memprof-list">Subscription information</a>
157 </p>
159 <h2> Reporting Bugs </h2>
162 Bugs should be reported to the GNOME bug tracking system.
163 (http://bugzilla.gnome.org/, project memprof). You will need to create an
164 account for yourself.
165 </p>
167 <h2> License </h2>
169 Memprof is Copyright 1999, 2000, 2001, Red Hat, Inc. Copyright 2002,
170 Kristian Rietveld, Copyright 2009 Holger Hans Peter Freyther, and
171 licensed under the terms of the
172 <a href="COPYING">GNU General Public License</a>.
174 <h2> Other similar tools </h2>
177 The technique that MemProf uses for detecting leaks, scanning
178 memory for pointers, is the basis of the Boehm Garbage
179 Collector. While the Boehm GC is mostly meant for memory
180 management, it also has a mode for leak detection
181 in programs that manually free memory. The package,
182 unlike MemProf, is highly portable.
183 </p>
186 Keith Packard wrote a memory debugging library (memleak)
187 included with X that does leak detection. This was
188 separated out from the X distribution by Jon Christopher
189 and turned into the standalone
190 <a href="http://quorum.tamu.edu/jon/gnu/">Debauch</a>
191 package. From the documentation Debauch seems similar
192 to MemProf in scope and techniques but somewhat more comprehensive
193 and portable. It doesn't, however, have MemProf's nice GUI frontend.
194 </p>
196 <hr>
197 <H4>In case of questions contact Holger Freyther<A HREF="mailto:zecke+memprof@secretlabs.de">
198 &lt;zecke+memprof@secretlabs.de&gt;</A></H4>
200 </html>