IRILL - Research and Innovation on Free Software

Run-time tracking of uninitialized data with MemorySanitizer


"Run-time tracking of uninitialized data with MemorySanitizer"
by Evgeniy Stepanov - Google,
on 2013-04-30 00:00:00
Download Webm format
Download MP4 format

MemorySanitizer is a detector of uninitialized reads, inspired by Valgrind/Memcheck and DrMemory, but based on compiler instrumentation technology. It was mentioned in the 2012 LLVM DevMtg; since then MemorySanitizer (MSan) has grown and improved and has been accepted in LLVM 3.3 trunk. It is now able to bootstrap Clang with a 3.7x slowdown and has detected multiple bugs in LLVM, Chromium, etc. Unlike AddressSanitizer and ThreadSanitizer, MSan has a very simple run-time library and a complex instrumentation module. Another difference is the need for full program instrumentation. We provide a helper tool based on DynamoRio instrumentation framework to deal with this. This talk will concentrate on MSan internals and implementation issues.