Eraser

Stefan Savage, Michael T. Burrows, Greg Nelson, Patrick Sobalvarro, Thomas E. Anderson

ACM Transactions on Computer Systems · 1997 · 1.6K citations · 16 references

DOIFull text

Open access

Concepts

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.

References

16