blob: 3cc9ac6b3090e9312f3768aa0db8afee500b33d0 [file] [log] [blame]
sewardj14132a12007-11-22 01:07:57 +00001<?xml version="1.0"?> <!-- -*- sgml -*- -->
2<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
3 "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
4
5
6<chapter id="new-tech-docs"
7 xreflabel="The design and implementation of Valgrind">
8
9<title>The Design and Implementation of Valgrind</title>
10
11
12<para>A number of academic publications nicely describe many aspects
13of Valgrind's design and implementation. Online copies of all of
14them, and others, are available at
15http://valgrind.org/docs/pubs.html.</para>
16
17<para>A good top-level overview of Valgrind is given in:</para>
18
19<para>
20"Valgrind: A Framework for Heavyweight Dynamic Binary
21Instrumentation." Nicholas Nethercote and Julian Seward. Proceedings
22of ACM SIGPLAN 2007 Conference on Programming Language Design and
23Implementation (PLDI 2007), San Diego, California, USA, June 2007.
24This paper describes how Valgrind works, and how it differs from other
25DBI frameworks such as Pin and DynamoRIO.</para>
26
27
28<para>The following two papers together give a comprehensive
29description of how Memcheck works:</para>
30
31<para>"Using Valgrind to detect undefined value errors with
32bit-precision." Julian Seward and Nicholas Nethercote. Proceedings
33of the USENIX'05 Annual Technical Conference, Anaheim, California,
34USA, April 2005. This paper describes in detail how Memcheck's
35undefined value error detection (a.k.a. V bits) works.</para>
36
37<para>"How to Shadow Every Byte of Memory Used by a Program."
38Nicholas Nethercote and Julian Seward. Proceedings of the Third
39International ACM SIGPLAN/SIGOPS Conference on Virtual Execution
40Environments (VEE 2007), San Diego, California, USA, June 2007. This
41paper describes in detail how Memcheck's shadow memory is implemented,
42and compares it to other alternative approaches.</para>
43
44
45<para>The following paper describes Callgrind:</para>
46
47<para>"A Tool Suite for Simulation Based Analysis of Memory Access
48Behavior." Josef Weidendorfer, Markus Kowarschik and Carsten
49Trinitis. Proceedings of the 4th International Conference on
50Computational Science (ICCS 2004), Krakow, Poland, June 2004. This
51paper describes Callgrind.</para>
52
53<para>The following dissertation describes Valgrind in some detail
54(some of these details are now out-of-date) as well as Cachegrind,
55Annelid and Redux. It also covers some underlying theory about
56dynamic binary analysis in general and what all these tools have in
57common:</para>
58
59<para>"Dynamic Binary Analysis and Instrumentation." Nicholas
60Nethercote. PhD Dissertation, University of Cambridge, November
612004.</para>
62
63
64</chapter>