1ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 2ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownRelease notes for Valgrind 3ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown~~~~~~~~~~~~~~~~~~~~~~~~~~ 4ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownIf you are building a binary package of Valgrind for distribution, 5ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownplease read README_PACKAGERS. It contains some important information. 6ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 7ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownIf you are developing Valgrind, please read README_DEVELOPERS. It contains 8ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownsome useful information. 9ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 10ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownFor instructions on how to build/install, see the end of this file. 11ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 12ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownIf you have problems, consult the FAQ to see if there are workarounds. 13ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 14ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 15ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownExecutive Summary 16ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown~~~~~~~~~~~~~~~~~ 17ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownValgrind is a framework for building dynamic analysis tools. There are 18ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownValgrind tools that can automatically detect many memory management 19ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownand threading bugs, and profile your programs in detail. You can also 20ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownuse Valgrind to build new tools. 21ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 22ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownThe Valgrind distribution currently includes six production-quality 23ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Browntools: a memory error detector, two thread error detectors, a cache 24ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownand branch-prediction profiler, a call-graph generating cache abd 25ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownbranch-prediction profiler, and a heap profiler. It also includes 26ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownthree experimental tools: a heap/stack/global array overrun detector, 27ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Browna different kind of heap profiler, and a SimPoint basic block vector 28ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Browngenerator. 29ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 30ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownValgrind is closely tied to details of the CPU, operating system and to 31ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Browna lesser extent, compiler and basic C libraries. This makes it difficult 32ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownto make it portable. Nonetheless, it is available for the following 33ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownplatforms: 34ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 35ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown- x86/Linux 36ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown- AMD64/Linux 37ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown- PPC32/Linux 38ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown- PPC64/Linux 39ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown- ARM/Linux 40ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown- x86/MacOSX 41ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown- AMD64/MacOSX 42ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 43ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownNote that AMD64 is just another name for x86-64, and Valgrind runs fine 44ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownon Intel processors. Also note that the core of MacOSX is called 45ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown"Darwin" and this name is used sometimes. 46ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 47ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownValgrind is licensed under the GNU General Public License, version 2. 48ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownRead the file COPYING in the source distribution for details. 49ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 50ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownHowever: if you contribute code, you need to make it available as GPL 51ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownversion 2 or later, and not 2-only. 52ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 53ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 54ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownDocumentation 55ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown~~~~~~~~~~~~~ 56ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownA comprehensive user guide is supplied. Point your browser at 57ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown$PREFIX/share/doc/valgrind/manual.html, where $PREFIX is whatever you 58ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownspecified with --prefix= when building. 59ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 60ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 61ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownBuilding and installing it 62ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown~~~~~~~~~~~~~~~~~~~~~~~~~~ 63ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownTo install from the Subversion repository : 64ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 65ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 0. Check out the code from SVN, following the instructions at 66ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown http://www.valgrind.org/downloads/repository.html. 67ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 68ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1. cd into the source directory. 69ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 70ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 2. Run ./autogen.sh to setup the environment (you need the standard 71ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown autoconf tools to do so). 72ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 73ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 3. Continue with the following instructions... 74ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 75ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownTo install from a tar.bz2 distribution: 76ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 77ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4. Run ./configure, with some options if you wish. The only interesting 78ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown one is the usual --prefix=/where/you/want/it/installed. 79ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 80ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 5. Run "make". 81ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 82ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 6. Run "make install", possibly as root if the destination permissions 83ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown require that. 84ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 85ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 7. See if it works. Try "valgrind ls -l". Either this works, or it 86ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown bombs out with some complaint. In that case, please let us know 87ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown (see www.valgrind.org). 88ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 89ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownImportant! Do not move the valgrind installation into a place 90ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Browndifferent from that specified by --prefix at build time. This will 91ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Browncause things to break in subtle ways, mostly when Valgrind handles 92ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownfork/exec calls. 93ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 94ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 95ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownThe Valgrind Developers 96