Valgrind, version 2.1.0

This manual was last updated on 14 December 2003

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

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 core
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 tools for Valgrind, in order to make new program supervision tools.

Valgrind Tools

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