Skip to main content

Dynamic Race Detection with LLVM Compiler

Compile-Time Instrumentation for ThreadSanitizer

  • Conference paper
Runtime Verification (RV 2011)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 7186))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Serebryany, K., Iskhodzhanov, T.: ThreadSanitizer: data race detection in practice. WBIA (2009)

    Google Scholar 

  2. ThreadSanitizer project: documentation, source code, dynamic annotations, unit tests, http://code.google.com/p/data-race-test

  3. Sun Studio, http://developers.sun.com/sunstudio

  4. Chromium browser, http://dev.chromium.org

  5. Cross Fuzz, http://lcamtuf.coredump.cx/cross_fuzz

  6. Duggal, A.: Stopping Data Races Using Redflag. Master’s thesis, Stony Brook University (May 2010), technical Report FSL-10-02

    Google Scholar 

  7. Intel Inspector XE, http://software.intel.com/en/articles/intel-parallel-studio-xe

  8. Lamport, L.: Time, clocks, and the ordering of events in a distributed system. Commun. ACM (1978)

    Google Scholar 

  9. The LLVM Compiler Infrastructure, http://llvm.org

  10. Marino, D., Musuvathi, M., Narayanasamy, S.: Literace: effective sampling for lightweight data-race detection. In: PLDI (2009)

    Google Scholar 

  11. Savage, S., Burrows, M., et al.: Eraser: a dynamic data race detector for multithreaded programs. ACM TOCS 15(4), 391–411 (1997)

    Article  Google Scholar 

  12. Valgrind, Helgrind, http://www.valgrind.org

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics