blob: de7aa1203e8f7c0b30b62ede87199bca5be7407a [file] [log] [blame]
sewardjde4a1d02002-03-22 01:27:54 +00001
sewardj40183922002-06-19 20:52:32 +00002Release notes for Valgrind, version 1.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
12
13Executive Summary
14~~~~~~~~~~~~~~~~~
15Valgrind is a tool to help you find memory-management problems in your
16programs. When a program is run under Valgrind's supervision, all
17reads and writes of memory are checked, and calls to
18malloc/new/free/delete are intercepted. As a result, Valgrind can
19detect problems such as:
20
21 Use of uninitialised memory
22 Reading/writing memory after it has been free'd
23 Reading/writing off the end of malloc'd blocks
24 Reading/writing inappropriate areas on the stack
25 Memory leaks -- where pointers to malloc'd blocks are lost forever
26 Passing of uninitialised and/or unaddressible memory to system calls
27 Mismatched use of malloc/new/new [] vs free/delete/delete []
sewardj40183922002-06-19 20:52:32 +000028 Some abuses of the POSIX pthread API
sewardjde4a1d02002-03-22 01:27:54 +000029
30Problems like these can be difficult to find by other means, often
31lying undetected for long periods, then causing occasional,
32difficult-to-diagnose crashes.
33
34When Valgrind detects such a problem, it can, if you like, attach GDB
35to your program, so you can poke around and see what's going on.
36
37Valgrind is closely tied to details of the CPU, operating system and
38to a less extent, compiler and basic C libraries. This makes it
39difficult to make it portable, so I have chosen at the outset to
40concentrate on what I believe to be a widely used platform: Red Hat
41Linux 7.2, on x86s. I believe that it will work without significant
42difficulty on other x86 GNU/Linux systems which use the 2.4 kernel and
sewardj365a8512002-07-01 08:30:05 +000043GNU libc 2.2.X, for example SuSE 7.1 and Mandrake 8.0. This version
441.0 release is known to work on Red Hats 6.2, 7.2 and 7.3, at the very
45least.
sewardjde4a1d02002-03-22 01:27:54 +000046
47Valgrind is licensed under the GNU General Public License, version 2.
48Read the file LICENSE in the source distribution for details.
49
50
51Documentation
52~~~~~~~~~~~~~
53A comprehensive user guide is supplied. Point your browser at
54docs/index.html. If your browser doesn't like frames, point it
sewardj40183922002-06-19 20:52:32 +000055instead at docs/manual.html. There's also detailed, although somewhat
56out of date, documentation of how valgrind works, in
57docs/techdocs.html.
sewardjde4a1d02002-03-22 01:27:54 +000058
59
60Building and installing it
61~~~~~~~~~~~~~~~~~~~~~~~~~~
gobrye721a522002-03-22 13:38:30 +000062If you install from CVS :
sewardjde4a1d02002-03-22 01:27:54 +000063
gobrye721a522002-03-22 13:38:30 +000064 0. cd into the source directory
sewardjde4a1d02002-03-22 01:27:54 +000065
gobrye721a522002-03-22 13:38:30 +000066 1. Run ./autogen.sh to setup the environment (you need the standard
67 autoconf tools to do so)
sewardjde4a1d02002-03-22 01:27:54 +000068
gobrye721a522002-03-22 13:38:30 +000069If you install from a tar.gz archive:
sewardjde4a1d02002-03-22 01:27:54 +000070
gobrye721a522002-03-22 13:38:30 +000071 2. Run ./configure, with some options if you wish. The standard
sewardj40183922002-06-19 20:52:32 +000072 options are documented in the INSTALL file. The only interesting
73 one is the usual --prefix=/where/you/want/it/installed
gobrye721a522002-03-22 13:38:30 +000074
75 3. Do "make"
76
sewardj40183922002-06-19 20:52:32 +000077 4. Do "make install", possibly as root if the destination permissions
78 require that.
gobrye721a522002-03-22 13:38:30 +000079
80 5. See if it works. Try "valgrind ls -l". Either this works,
81 or it bombs out complaining it can't find argc/argv/envp.
sewardj40183922002-06-19 20:52:32 +000082 In that case, mail me a bug report.
gobrye721a522002-03-22 13:38:30 +000083
sewardj40183922002-06-19 20:52:32 +000084Important! Do not move the valgrind installation into a place
85different from that specified by --prefix at build time. This will
86cause things to break in subtle ways, mostly when Valgrind handles
87fork/exec calls.
gobry69896d52002-04-05 06:56:07 +000088
sewardjde4a1d02002-03-22 01:27:54 +000089
sewardjde4a1d02002-03-22 01:27:54 +000090Julian Seward (jseward@acm.org)
sewardj365a8512002-07-01 08:30:05 +0000911 July 2002