skip to main content
article
Free Access

Eraser: a dynamic data race detector for multithreaded programs

Published:01 November 1997Publication History
Skip Abstract Section

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

  1. BERSHAD, B. N., SAVAGE, S., PARDYAK, P., SIRER, E. G., FIUCZYNSKI, M., BECKER, D., EGGERS, S., AND CHAMBERS, C. 1995. Extensibility, safety and performance in the SPIN operating system. In Proceedings of the 15th ACM Symposium on Operating Systems Principles (Copper Mountain, Colo., Dec.). ACM, New York, 267-284. Google ScholarGoogle Scholar
  2. DETLEFS, D. L., LEINO, R. M., NELSON, G., AND SAXE, J.B. 1997. Extended static checking. Tech. Rep. Res. Rep. 149, Systems Research Center, Digital Equipment Corp., Palo Alto, Calif.Google ScholarGoogle Scholar
  3. DINNING, A. AND SCHONBERG, E. 1990. An empirical comparison of monitoring algorithms for access anomaly detection. In Proceedings of the 2nd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (Seattle, Wash., Mar.). ACM, New York, 1-10. Google ScholarGoogle Scholar
  4. DINNING, n. AND SCHONBERG, E. 1991. Detecting access anomalies in programs with critical sections. In Proceedings of the ACM/ ONR Workshop on Parallel and Distributed Debugging. ACM SIGPLAN Not. 26, 12 (Dec.), 85-96. Google ScholarGoogle Scholar
  5. HOARE, C. 1974. Monitors: An operating system structuring concept. Commun. ACM 17, 10 (Oct.), 549-557. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. KLEIMAN, S. AND EYKHOLT, J. 1995. Interrupts as threads. ACM Oper. Syst. Rev. 29, 2 (Apr.), 21-26. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. LAMPORT, L. 1978. Time, clocks, and the ordering of events in a distributed system. Commun. ACM 21, 7 (July), 558-565. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. LAMPSON, B. AND REDELL, D. 1980. Experiences with processes and monitors in Mesa. Commun. ACM 23, 2 (Feb.), 104-117. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. LEE, E. K. AND THEKKATH, C.A. 1996. Petal: Distributed virtual disks. In Proceedings of the 7th International Conference on Architectural Support for Programming Languages and Operating Systems (Cambridge, Mass, Oct.). ACM, New York, 84-93. Google ScholarGoogle Scholar
  10. MANASSE, M. S. AND NELSON, G. 1991. Trestle reference manual. Res. Rep. 68, Systems Research Center, Digital Equipment Corp., Palo Alto, Calif.Google ScholarGoogle Scholar
  11. MELLOR-CRUMMEY, g. 1991. On-the-fly detection of data races for programs with nested fork-join parallelism. In Proceedings of the 1991 Supercomputer Debugging Workshop (Albuquerque, N. Mex., Nov.). 1-16. Google ScholarGoogle Scholar
  12. MELLOR-CRUMMEY, g. 1993. Compile-time support for efficient data race detection in shared-memory parallel programs. In Proceedings of the ACM/ ONR Workshop on Parallel and Distributed Debugging (San Diego, Calif., May). ACM, New York, 129-139. Google ScholarGoogle Scholar
  13. NETZER, R. H. B. 1991. Race condition detection for debugging shared-memory parallel programs. Ph.D. thesis, Univ. of Wisconsin-Madison, Madison, Wisc. Google ScholarGoogle Scholar
  14. PERKOVIC, D. AND KELEHER, P. 1996. Online data-race detection via coherency guarantees. In Proceedings of the 2nd USENIX Symposium on Operating Systems Design and Implementation (Seattle, Wash., Oct.). USENIX Assoc., Berkeley, Calif., 47-58. Google ScholarGoogle Scholar
  15. SCALES, D. J., GHARACHORLOO, K., AND THEKKATH, C. A. 1996. Shasta: A low overhead, software-only approach for supporting fine-grain shared memory. In Proceedings of the 7th International Conference on Architectural Support for Programming Languages and Operating Systems (Cambridge, Mass., Oct.). ACM, New York, 174-185. Google ScholarGoogle Scholar
  16. SRIVASTAVA, A. AND EUSTACE, A. 1994. ATOM" A system for building customized program analysis tools. In Proceedings of the 1994 ACM SIGPLAN Conference on Programming Language Design and Implementation (Orlando, Fla., June). ACM, New York, 196-205. Google ScholarGoogle Scholar
  17. SUNSOFT. 1994. lock_lint user's guide. SunSoft Manual, Sun Microsystems, Inc., Palo Alto, Calif.Google ScholarGoogle Scholar

Index Terms

  1. Eraser: a dynamic data race detector for multithreaded programs

            Recommendations

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in

            Full Access

            • Published in

              cover image ACM Transactions on Computer Systems
              ACM Transactions on Computer Systems  Volume 15, Issue 4
              Nov. 1997
              92 pages
              ISSN:0734-2071
              EISSN:1557-7333
              DOI:10.1145/265924
              Issue’s Table of Contents

              Copyright © 1997 ACM

              Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 1 November 1997
              Published in tocs Volume 15, Issue 4

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • article

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader