Valgrind, stable release 2.0.0

This manual was last updated on 6 November 2003

jseward@acm.org, njn25@cam.ac.uk, jeremy@goop.org
Copyright © 2000-2003 Julian Seward, Nick Nethercote, Jeremy Fitzhardinge

Valgrind is licensed under the GNU General Public License, version 2
An open-source tool for debugging and profiling Linux-x86 executables.


Contents of this manual

Introduction

1.1  An overview of Valgrind
1.2  How to navigate this manual
1.2.1  For users migrating from valgrind-1.0.X

Using and understanding the Valgrind core services

2.1  What it does with your program
2.2  Getting started
2.3  The commentary
2.4  Reporting of errors
2.5  Suppressing errors
2.6  Command-line flags for the Valgrind code
2.7  The Client Request mechanism
2.8  Support for POSIX pthreads
2.9  Handling of signals
2.10  Building and installing
2.11  If you have problems
2.12  Limitations
2.13  How it works -- a rough overview
2.14  An example run

Memcheck: a heavyweight memory checker

Cachegrind: a cache-miss profiler

Addrcheck: a lightweight memory checker

Helgrind: a data-race detector

The following is not part of the user manual. It describes how you can write skins for Valgrind, in order to make new program supervision tools.

Valgrind Skins

The following are not part of the user manual. They describe internal details of how Valgrind works. Reading them may rot your mind. You have been warned.

The design and implementation of Valgrind

How Cachegrind works