USENIX Annual Technical Conference · 2005 · 299 citations · 6 references
ComputingComputer EngineeringComputer ScienceFault ToleranceFault-tolerant ComputingProgramming LanguagesError DetectionType CheckingBinary InstrumentationFalse Negative DetectionFalse Negative Rate AnalysisFalse Negative Rate EvaluationMemory Error Detection
We present Memcheck, a tool that has been implemented with the dynamic binary instrumentation framework Valgrind. Memcheck detects a wide range of memory errors in programs as they run. This paper focuses on one kind of error that Memcheck detects: undefined value errors. Such errors are common, and often cause bugs that are hard to find in programs written in languages such as C, C++ and Fortran. Memcheck's definedness checking improves on that of previous tools by being accurate to the level of individual bits. This accuracy gives Memcheck a low false positive and false negative rate. The definedness checking involves shadowing every bit of data in registers and memory with a second bit that indicates if the bit has a defined value. Every value-creating operation is instrumented with a shadow operation that propagates shadow bits appropriately. Memcheck uses these shadow bits to detect uses of undefined values that could adversely affect a program's behaviour. Under Memcheck, programs typically run 20-30 times slower than normal. This is fast enough to use with large programs. Memcheck finds many errors in real programs, and has been used during the past two years by thousands of programmers on a wide range of systems, including OpenOffice, Mozilla, Opera, KDE, GNOME, MySQL, Perl, Samba, The GIMP, and Unreal Tournament.
6
Amitabh Srivastava, Alan Eustace · 1994 · 1K citations · Full text
Nicholas Nethercote, Julian Seward · Electronic Notes in Theoretical Computer Science · 2003 · 458 citations · Full text
Static and dynamic analysis: synergy and duality
Michael D. Ernst · 2003 · 280 citations
Dynamic binary analysis and instrumentation
Nicholas Nethercote · CL Technical Reports · 2021 · 171 citations · Full text