| |
| Release notes for Valgrind |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| If you are building a binary package of Valgrind for distribution, |
| please read README_PACKAGERS. It contains some important information. |
| |
| If you are developing Valgrind, please read README_DEVELOPERS. It contains |
| some useful information. |
| |
| For instructions on how to build/install, see the end of this file. |
| |
| If you have problems, consult the FAQ to see if there are workarounds. |
| |
| |
| Executive Summary |
| ~~~~~~~~~~~~~~~~~ |
| Valgrind is a framework for building dynamic analysis tools. There are |
| Valgrind tools that can automatically detect many memory management |
| and threading bugs, and profile your programs in detail. You can also |
| use Valgrind to build new tools. |
| |
| The Valgrind distribution currently includes six production-quality |
| tools: a memory error detector, two thread error detectors, a cache |
| and branch-prediction profiler, a call-graph generating cache abd |
| branch-prediction profiler, and a heap profiler. It also includes |
| three experimental tools: a heap/stack/global array overrun detector, |
| a different kind of heap profiler, and a SimPoint basic block vector |
| generator. |
| |
| Valgrind is closely tied to details of the CPU, operating system and to |
| a lesser extent, compiler and basic C libraries. This makes it difficult |
| to make it portable. Nonetheless, it is available for the following |
| platforms: |
| |
| - X86/Linux |
| - AMD64/Linux |
| - PPC32/Linux |
| - PPC64/Linux |
| - ARM/Linux |
| - x86/MacOSX |
| - AMD64/MacOSX |
| - S390X/Linux |
| - MIPS32/Linux |
| |
| Note that AMD64 is just another name for x86_64, and Valgrind runs fine |
| on Intel processors. Also note that the core of MacOSX is called |
| "Darwin" and this name is used sometimes. |
| |
| Valgrind is licensed under the GNU General Public License, version 2. |
| Read the file COPYING in the source distribution for details. |
| |
| However: if you contribute code, you need to make it available as GPL |
| version 2 or later, and not 2-only. |
| |
| |
| Documentation |
| ~~~~~~~~~~~~~ |
| A comprehensive user guide is supplied. Point your browser at |
| $PREFIX/share/doc/valgrind/manual.html, where $PREFIX is whatever you |
| specified with --prefix= when building. |
| |
| |
| Building and installing it |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| To install from the Subversion repository : |
| |
| 0. Check out the code from SVN, following the instructions at |
| http://www.valgrind.org/downloads/repository.html. |
| |
| 1. cd into the source directory. |
| |
| 2. Run ./autogen.sh to setup the environment (you need the standard |
| autoconf tools to do so). |
| |
| 3. Continue with the following instructions... |
| |
| To install from a tar.bz2 distribution: |
| |
| 4. Run ./configure, with some options if you wish. The only interesting |
| one is the usual --prefix=/where/you/want/it/installed. |
| |
| 5. Run "make". |
| |
| 6. Run "make install", possibly as root if the destination permissions |
| require that. |
| |
| 7. See if it works. Try "valgrind ls -l". Either this works, or it |
| bombs out with some complaint. In that case, please let us know |
| (see www.valgrind.org). |
| |
| Important! Do not move the valgrind installation into a place |
| different from that specified by --prefix at build time. This will |
| cause things to break in subtle ways, mostly when Valgrind handles |
| fork/exec calls. |
| |
| |
| The Valgrind Developers |