1;3409;0c Eraser: A Dynamic Data Race Detector for Multithreaded Programs

Eraser: A Dynamic Data Race Detector for Multithreaded Programs

ACM Transactions on Computer Systems, vol. 15, no. 4, 1997
Pages: 391-411DOI: 10.1145/265924.265927

TOCS

bibtex

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.