mirror of
https://github.com/Zenithsiz/ftmemsim-valgrind.git
synced 2026-02-04 02:18:37 +00:00
This makes the rule for xmllint easier since it doesn't need to override the DTD to validate against. It also helps with other tools tryinf to process the docbookx xml files.
88 lines
3.0 KiB
XML
88 lines
3.0 KiB
XML
<?xml version="1.0"?> <!-- -*- sgml -*- -->
|
|
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
|
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"
|
|
[ <!ENTITY % vg-entities SYSTEM "../../docs/xml/vg-entities.xml"> %vg-entities; ]>
|
|
|
|
|
|
<chapter id="design-impl"
|
|
xreflabel="The design and implementation of Valgrind">
|
|
|
|
<title>The Design and Implementation of Valgrind</title>
|
|
|
|
|
|
<para>A number of academic publications nicely describe many aspects
|
|
of Valgrind's design and implementation. Online copies of all of
|
|
them, and others, are available on the <ulink url="&vg-pubs-url;">Valgrind
|
|
publications page</ulink>.</para>
|
|
|
|
<para>The following paper gives a good overview of Valgrind, and explains
|
|
how it differs from other dynamic binary instrumentation frameworks such as
|
|
Pin and DynamoRIO.</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
<command>Valgrind: A Framework for Heavyweight Dynamic Binary
|
|
Instrumentation. Nicholas Nethercote and Julian Seward. Proceedings
|
|
of ACM SIGPLAN 2007 Conference on Programming Language Design and
|
|
Implementation (PLDI 2007), San Diego, California, USA, June
|
|
2007.</command>
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
|
|
<para>The following two papers together give a comprehensive description of
|
|
how most of Memcheck works. The first paper describes in detail how
|
|
Memcheck's undefined value error detection (a.k.a. V bits) works. The
|
|
second paper describes in detail how Memcheck's shadow memory is
|
|
implemented, and compares it to other alternative approaches.
|
|
</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para><command>Using Valgrind to detect undefined value errors with
|
|
bit-precision. Julian Seward and Nicholas Nethercote. Proceedings
|
|
of the USENIX'05 Annual Technical Conference, Anaheim, California,
|
|
USA, April 2005.</command>
|
|
</para>
|
|
|
|
<para><command>How to Shadow Every Byte of Memory Used by a Program.
|
|
Nicholas Nethercote and Julian Seward. Proceedings of the Third
|
|
International ACM SIGPLAN/SIGOPS Conference on Virtual Execution
|
|
Environments (VEE 2007), San Diego, California, USA, June
|
|
2007.</command>
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
|
|
<para>The following paper describes Callgrind.</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para><command>A Tool Suite for Simulation Based Analysis of Memory Access
|
|
Behavior. Josef Weidendorfer, Markus Kowarschik and Carsten
|
|
Trinitis. Proceedings of the 4th International Conference on
|
|
Computational Science (ICCS 2004), Krakow, Poland, June 2004.</command>
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>The following dissertation describes Valgrind in some detail
|
|
(many of these details are now out-of-date) as well as Cachegrind,
|
|
Annelid and Redux. It also covers some underlying theory about
|
|
dynamic binary analysis in general and what all these tools have in
|
|
common.</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para><command>Dynamic Binary Analysis and Instrumentation. Nicholas
|
|
Nethercote.</command> PhD Dissertation, University of Cambridge, November
|
|
2004.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
|
|
</chapter>
|