1. Introduction
1.1. An Overview of Valgrind
Valgrind is an instrumentation framework for building dynamic analysis tools.
It comes with a set of tools each of
which performs some kind of debugging, profiling, or similar task that helps you improve your programs. Valgrind’s
architecture is modular, so new tools can be created easily and without disturbing the existing structure.
A number of useful tools are supplied as standard.
1.
Memcheck
is a memory error detector. It helps you make your programs, particularly those written in C and C++,
more correct.
2.
Cachegrind
is a cache and branch-prediction profiler. It helps you make your programs run faster.
3.
Callgrind
is a call-graph generating cache profiler.
It has some overlap with Cachegrind, but also gathers some
information that Cachegrind does not.
4.
Helgrind
is a thread error detector. It helps you make your multi-threaded programs more correct.
5.
DRD
is also a thread error detector. It is similar to Helgrind but uses different analysis techniques and so may find
different problems.
6.
Massif
is a heap profiler. It helps you make your programs use less memory.
7.
DHAT
is a different kind of heap profiler. It helps you understand issues of block lifetimes, block utilisation, and
layout inefficiencies.
8.
SGcheck
is an experimental tool that can detect overruns of stack and global arrays.
Its functionality is
complementary to that of Memcheck: SGcheck finds problems that Memcheck can’t, and vice versa..
9.
BBV
is an experimental SimPoint basic block vector generator. It is useful to people doing computer architecture
research and development.
There are also a couple of minor tools that aren’t useful to most users:
Lackey
is an example tool that illustrates
some instrumentation basics; and
Nulgrind
is the minimal Valgrind tool that does no analysis or instrumentation, and
is only useful for testing purposes.
Valgrind is closely tied to details of the CPU and operating system, and to a lesser extent, the compiler and basic C
libraries. Nonetheless, it supports a number of widely-used platforms, listed in full at http://www.valgrind.org/.
Valgrind is built via the standard Unix
./configure
,
make
,
make install
process; full details are given in
the README file in the distribution.
Valgrind is licensed under the
The GNU General Public License
, version 2.
The
valgrind/*.h
headers that
you may wish to include in your code (eg.
valgrind.h
,
memcheck.h
,
helgrind.h
, etc.) are distributed under
a BSD-style license, so you may include them in your code without worrying about license conflicts.
Some of
the PThreads test cases,
pth_*.c
, are taken from "Pthreads Programming" by Bradford Nichols, Dick Buttlar &
Jacqueline Proulx Farrell, ISBN 1-56592-115-1, published by O’Reilly & Associates, Inc.
If you contribute code to Valgrind, please ensure your contributions are licensed as "GPLv2, or (at your option) any
later version." This is so as to allow the possibility of easily upgrading the license to GPLv3 in future. If you want to
modify code in the VEX subdirectory, please also see the file VEX/HACKING.README in the distribution.
1
Содержание Software
Страница 176: ...Valgrind FAQ Release 3 8 0 10 August 2012 Copyright 2000 2012 Valgrind Developers Email valgrind valgrind org ...
Страница 177: ...Valgrind FAQ Table of Contents Valgrind Frequently Asked Questions 1 ii ...
Страница 302: ...README mips based on newer GCC versions if possible 95 ...
Страница 303: ...GNU Licenses ...
Страница 304: ...GNU Licenses Table of Contents 1 The GNU General Public License 1 2 The GNU Free Documentation License 8 ii ...