Abstract
Data races are among the most difficult to detect and costly bugs. Race detection has been studied widely, but none of the existing tools satisfies the requirements of high speed, detailed reports and wide availability at the same time. We describe our attempt to create a tool that works fast, has detailed and understandable reports and is available on a variety of platforms. The race detector is based on our previous work, ThreadSanitizer [1], and the instrumentation is done using the LLVM compiler. We show that applying compiler instrumentation and sampling reduces the slowdown to less than 1.5x, fast enough to use instrumented programs interactively.
Access provided by Autonomous University of Puebla. Download to read the full chapter text
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Serebryany, K., Iskhodzhanov, T.: ThreadSanitizer: data race detection in practice. WBIA (2009)
ThreadSanitizer project: documentation, source code, dynamic annotations, unit tests, http://code.google.com/p/data-race-test
Sun Studio, http://developers.sun.com/sunstudio
Chromium browser, http://dev.chromium.org
Cross Fuzz, http://lcamtuf.coredump.cx/cross_fuzz
Duggal, A.: Stopping Data Races Using Redflag. Master’s thesis, Stony Brook University (May 2010), technical Report FSL-10-02
Intel Inspector XE, http://software.intel.com/en/articles/intel-parallel-studio-xe
Lamport, L.: Time, clocks, and the ordering of events in a distributed system. Commun. ACM (1978)
The LLVM Compiler Infrastructure, http://llvm.org
Marino, D., Musuvathi, M., Narayanasamy, S.: Literace: effective sampling for lightweight data-race detection. In: PLDI (2009)
Savage, S., Burrows, M., et al.: Eraser: a dynamic data race detector for multithreaded programs. ACM TOCS 15(4), 391–411 (1997)
Valgrind, Helgrind, http://www.valgrind.org
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Serebryany, K., Potapenko, A., Iskhodzhanov, T., Vyukov, D. (2012). Dynamic Race Detection with LLVM Compiler. In: Khurshid, S., Sen, K. (eds) Runtime Verification. RV 2011. Lecture Notes in Computer Science, vol 7186. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-29860-8_9
Download citation
DOI: https://doi.org/10.1007/978-3-642-29860-8_9
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-29859-2
Online ISBN: 978-3-642-29860-8
eBook Packages: Computer ScienceComputer Science (R0)