Valgrind: A Program Supervision Framework
By Nicholas Nethercote, Julian Seward. RV@CAV, 2003
540 citations recorded by the source corpus.
Abstract Valgrind is a programmable framework for creating program supervision tools such as bug detectors and profilers. It executes supervised programs using dynamic binary translation, giving it total control over their every part without requiring source code, and without the need for recompilation or relinking prior to execution. New supervision tools can be easily created by writing skins that plug into Valgrind's core. As an example, we describe one skin that performs Purify-style memory checks for C and C++ programs.
Subfields: Artificial Intelligence, Hardware and Architecture
View Paper: https://www.semanticscholar.org/paper/c77a40aa3bd7193ac72b90f77be27001cdcb72a1
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Artificial Intelligence
- Dawn Song
- Yuanyuan Zhou
- Shan Lu
- Angelos Stavrou
- Michael E. Locasto
- Benjamin Livshits
- Mark Harman
- Thomas Zimmermann
In Hardware and Architecture
- Yuanyuan Zhou
- Benjamin Livshits
- Shin Yoo
- Thomas Zimmermann
- Mark Harman
- Shan Lu
- Julian Seward
- Nicholas Nethercote
Citations in the corpus
- Valgrind: a framework for heavyweight dynamic binary instrumentation (2007, methodology): “2 Two prior publications [18, 15] described earlier versions of Valgrind.”
- On the infeasibility of modeling polymorphic shellcode (2007, background): “Valgrind’s [27] binary supervision enables us to add instru mentation to a process without modifying its source code or alteri ng the semantics of the process’s operations.”
- BAP: A Binary Analysis Platform (2011, methodology): “, DynInst [13], Valgrind [12], and Microsoft Phoenix [11]) also did not represent these side effects explicitly.”
- Managing performance vs. accuracy trade-offs with loop perforation (2011, methodology): “The fifth row (Valgrind) presents the number of remaining loops that Algorithm 1 filters out because their perforation introduces a latent memory error detected by the Valgrind memcheck tool [27].”
- Learning from mistakes: a comprehensive study on real world concurrency bug characteristics (2008, unknown): “Valgrind: A program supervision framework.”
- CP-Miner: finding copy-paste and related bugs in large-scale software code (2006, background): “Index Terms—Software analysis, code reuse, code duplication, debugging aids, data mining.”
- CFLRU: a replacement algorithm for flash memory (2006, methodology): “For swap system, we gathered virtual memory reference traces using a profiling tool, called Valgrind [9].”
- Understanding data lifetime via whole system simulation (2004, methodology): “For example, Valgrind [19] has been widely deployed in the Linux community and provides a wide range of functionality including memory error detection (à la Purify [15]), data race detection, cache profiling, etc.”
- The Future of Software Performance Engineering (2007, methodology): “It can be generated using instrumentation, as is the case with Quantify, through statistical sampling, or by running the program on a virtual machine and counting the execution of the actual instructions [50] .”
- Pareto efficient multi-objective test case selection (2007, methodology): “In this paper we circumvent these issues by using the software profiling tool, Valgrind, which executes the program binary code in an emulated, virtual CPU [14].”
- DynaMine: finding common error patterns by mining software revision histories (2005, methodology): “Both of these analyses have been implemented as standard uses of the Valgrind system [ 34 ].”
- AVIO: detecting atomicity violations via access interleaving invariants (2006, unknown): “As the original SVD paper [42] reports, SVD imposes a factor of 65 times slow down to server applica 3 Part of the slow-down is from Valgrind s code emulation mechanism.”
- LIFT: A Low-Overhead Practical Information Flow Tracking System for Detecting Security Attacks (2006, methodology): “Dynamic Binary Instrumentation and Optimization There are many dynamic binary instrumentation tools, such as Dynamo [6], DynamoRIO [37], PIN [29], Valgrind [33], etc.”
- Taint-Enhanced Policy Enforcement: A Practical Approach to Defeat a Wide Range of Attacks (2006, background): “However, due to difficulties associated with static analysis (or transformation) of binaries, their implementation uses techniques based on a form of runtime instruction emulation [21], which causes a significant slowdown, e.”