DocumentCode
1933590
Title
MemorySanitizer: Fast detector of uninitialized memory use in C++
Author
Stepanov, Evgeniy ; Serebryany, Konstantin
fYear
2015
fDate
7-11 Feb. 2015
Firstpage
46
Lastpage
55
Abstract
This paper presents MemorySanitizer, a dynamic tool that detects uses of uninitialized memory in C and C++. The tool is based on compile time instrumentation and relies on bit-precise shadow memory at run-time. Shadow propagation technique is used to avoid false positive reports on copying of uninitialized memory. MemorySanitizer finds bugs at a modest cost of 2.5× in execution time and 2× in memory usage; the tool has an optional origin tracking mode that provides better reports with moderate extra overhead. The reports with origins are more detailed compared to reports from other similar tools; such reports contain names of local variables and the entire history of the uninitialized memory including intermediate stores. In this paper we share our experience in deploying the tool at a large scale and demonstrate the benefits of compile-time instrumentation over dynamic binary instrumentation.
Keywords
C++ language; computerised instrumentation; storage management; C++; MemorySanitizer; Shadow propagation technique; compile time instrumentation; dynamic binary instrumentation; optional origin tracking mode; uninitialized memory use fast detector; Computer bugs; Detectors; Google; Instruction sets; Instruments; Optimization; Vectors;
fLanguage
English
Publisher
ieee
Conference_Titel
Code Generation and Optimization (CGO), 2015 IEEE/ACM International Symposium on
Conference_Location
San Francisco, CA
Type
conf
DOI
10.1109/CGO.2015.7054186
Filename
7054186
Link To Document