blob: d065b4a5e8d59d315372b0b903da48c97f424ccc [file] [log] [blame]
sewardjde4a1d02002-03-22 01:27:54 +00001
sewardj3a359fe2002-07-25 22:45:35 +00002Release notes for Valgrind, version 1.0.0
3~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sewardjde4a1d02002-03-22 01:27:54 +00004KDE3 developers: please read also README_KDE3_FOLKS for guidance
5about how to debug KDE3 applications with Valgrind.
6
sewardj365a8512002-07-01 08:30:05 +00007If you are building a binary package of Valgrind for distribution,
8please read README_PACKAGERS. It contains some important information.
9
sewardjde4a1d02002-03-22 01:27:54 +000010For instructions on how to build/install, see the end of this file.
11
sewardj3a359fe2002-07-25 22:45:35 +000012Valgrind works best on systems with glibc-2.1.X or 2.2.X, and with gcc
13versions prior to 3.1. gcc-3.1 works, but generates code which causes
14valgrind to report many false errors. For now, try to use a gcc prior
15to 3.1; if you can't, at least compile your application without
16optimisation. Valgrind-1.0.X also can't handle glibc-2.3.X systems.
17
sewardjde4a1d02002-03-22 01:27:54 +000018
19Executive Summary
20~~~~~~~~~~~~~~~~~
21Valgrind is a tool to help you find memory-management problems in your
22programs. When a program is run under Valgrind's supervision, all
23reads and writes of memory are checked, and calls to
24malloc/new/free/delete are intercepted. As a result, Valgrind can
25detect problems such as:
26
27 Use of uninitialised memory
28 Reading/writing memory after it has been free'd
29 Reading/writing off the end of malloc'd blocks
30 Reading/writing inappropriate areas on the stack
31 Memory leaks -- where pointers to malloc'd blocks are lost forever
32 Passing of uninitialised and/or unaddressible memory to system calls
33 Mismatched use of malloc/new/new [] vs free/delete/delete []
sewardj40183922002-06-19 20:52:32 +000034 Some abuses of the POSIX pthread API
sewardjde4a1d02002-03-22 01:27:54 +000035
36Problems like these can be difficult to find by other means, often
37lying undetected for long periods, then causing occasional,
38difficult-to-diagnose crashes.
39
40When Valgrind detects such a problem, it can, if you like, attach GDB
41to your program, so you can poke around and see what's going on.
42
43Valgrind is closely tied to details of the CPU, operating system and
44to a less extent, compiler and basic C libraries. This makes it
45difficult to make it portable, so I have chosen at the outset to
46concentrate on what I believe to be a widely used platform: Red Hat
47Linux 7.2, on x86s. I believe that it will work without significant
48difficulty on other x86 GNU/Linux systems which use the 2.4 kernel and
sewardj365a8512002-07-01 08:30:05 +000049GNU libc 2.2.X, for example SuSE 7.1 and Mandrake 8.0. This version
501.0 release is known to work on Red Hats 6.2, 7.2 and 7.3, at the very
51least.
sewardjde4a1d02002-03-22 01:27:54 +000052
53Valgrind is licensed under the GNU General Public License, version 2.
njn25e49d8e72002-09-23 09:36:25 +000054Read the file COPYING in the source distribution for details.
sewardjde4a1d02002-03-22 01:27:54 +000055
56
57Documentation
58~~~~~~~~~~~~~
59A comprehensive user guide is supplied. Point your browser at
60docs/index.html. If your browser doesn't like frames, point it
sewardj40183922002-06-19 20:52:32 +000061instead at docs/manual.html. There's also detailed, although somewhat
62out of date, documentation of how valgrind works, in
63docs/techdocs.html.
sewardjde4a1d02002-03-22 01:27:54 +000064
65
66Building and installing it
67~~~~~~~~~~~~~~~~~~~~~~~~~~
gobrye721a522002-03-22 13:38:30 +000068If you install from CVS :
sewardjde4a1d02002-03-22 01:27:54 +000069
gobrye721a522002-03-22 13:38:30 +000070 0. cd into the source directory
sewardjde4a1d02002-03-22 01:27:54 +000071
gobrye721a522002-03-22 13:38:30 +000072 1. Run ./autogen.sh to setup the environment (you need the standard
73 autoconf tools to do so)
sewardjde4a1d02002-03-22 01:27:54 +000074
gobrye721a522002-03-22 13:38:30 +000075If you install from a tar.gz archive:
sewardjde4a1d02002-03-22 01:27:54 +000076
gobrye721a522002-03-22 13:38:30 +000077 2. Run ./configure, with some options if you wish. The standard
sewardj40183922002-06-19 20:52:32 +000078 options are documented in the INSTALL file. The only interesting
79 one is the usual --prefix=/where/you/want/it/installed
gobrye721a522002-03-22 13:38:30 +000080
81 3. Do "make"
82
sewardj40183922002-06-19 20:52:32 +000083 4. Do "make install", possibly as root if the destination permissions
84 require that.
gobrye721a522002-03-22 13:38:30 +000085
86 5. See if it works. Try "valgrind ls -l". Either this works,
87 or it bombs out complaining it can't find argc/argv/envp.
sewardj40183922002-06-19 20:52:32 +000088 In that case, mail me a bug report.
gobrye721a522002-03-22 13:38:30 +000089
sewardj40183922002-06-19 20:52:32 +000090Important! Do not move the valgrind installation into a place
91different from that specified by --prefix at build time. This will
92cause things to break in subtle ways, mostly when Valgrind handles
93fork/exec calls.
gobry69896d52002-04-05 06:56:07 +000094
sewardjde4a1d02002-03-22 01:27:54 +000095
sewardjde4a1d02002-03-22 01:27:54 +000096Julian Seward (jseward@acm.org)
sewardj365a8512002-07-01 08:30:05 +0000971 July 2002