Eraser: a dynamic data race detector for multithreaded programs

  • Authors:
  • Stefan Savage;Michael Burrows;Greg Nelson;Patrick Sobalvarro;Thomas Anderson

  • Affiliations:
  • Univ. of Washington, Seattle;Digital Equipment Corp., Palo Alto, CA;Digital Equipment Corp., Palo Alto, CA;Digital Equipment Corp., Palo Alto, CA;Univ. of California at Berkeley, Berkeley

  • Venue:
  • ACM Transactions on Computer Systems (TOCS)
  • Year:
  • 1997

Quantified Score

Hi-index 0.03

Visualization

Abstract

Multithreaded programming is difficult and error prone. It is easy to make a mistake in synchronization that produces a data race, yet it can be extremely hard to locate this mistake during debugging. This article describes a new tool, called Eraser, for dynamically detecting data races in lock-based multithreaded programs. Eraser uses binary rewriting techniques to monitor every shared-monory reference and verify that consistent locking behavior is observed. We present several case studies, including undergraduate coursework and a multithreaded Web search engine, that demonstrate the effectiveness of this approach.