Eraser: a dynamic data race detector for multithreaded programs. 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.

This software is also peer reviewed by journal TOMS.

References in zbMATH (referenced in 29 articles )

Showing results 1 to 20 of 29.
Sorted by year (citations)

1 2 next

  1. Pun, Ka I; Steffen, Martin; Stolz, Volker: Effect-polymorphic behaviour inference for deadlock checking (2016)
  2. Chatterjee, Krishnendu; De Alfaro, Luca; Faella, Marco; Majumdar, Rupak; Raman, Vishwanath: Code aware resource management (2013)
  3. Ritson, Carl G.; Sampson, Adam T.; Barnes, Frederick R.M.: Multicore scheduling for lightweight communicating processes (2012) ioport
  4. Chiu, Yung-Chang; Shieh, Ce-Kuen; Huang, Tzu-Chi; Liang, Tyng-Yeu; Chu, Kuo-Chih: Data race avoidance and replay scheme for developing and debugging parallel programs on distributed shared memory systems (2011)
  5. Donaldson, Alastair F.; Kroening, Daniel; Rümmer, Philipp: Automatic analysis of DMA races using model checking and $k$-induction (2011)
  6. Wang, Chao; Kundu, Sudipta; Limaye, Rhishikesh; Ganai, Malay; Gupta, Aarti: Symbolic predictive analysis for concurrent programs (2011)
  7. Carver, Richard H.; Lei, Yu: A class library for implementing, testing, and debugging concurrent programs (2010) ioport
  8. Harmanci, Derin; Gramoli, Vincent; Felber, Pascal; Fetzer, Christof: Extensible transactional memory testbed (2010)
  9. Martin, Jean-Phillipe; Hicks, Michael; Costa, Manuel; Akritidis, Periklis; Castro, Miguel: Dynamically checking ownership policies in concurrent C/C++ programs (2010)
  10. Vechev, Martin; Yahav, Eran; Raman, Raghavan; Sarkar, Vivek: Automatic verification of determinism for structured parallel programs (2010)
  11. Kidd, Nicholas; Reps, Thomas; Dolby, Julian; Vaziri, Mandana: Finding concurrency-related bugs using random isolation (2009)
  12. Russo, Alejandro; Sabelfeld, Andrei: Securing interaction between threads and the scheduler in the presence of synchronization (2009)
  13. Kahlon, Vineet; Yang, Yu; Sankaranarayanan, Sriram; Gupta, Aarti: Fast and accurate static data-race detection for concurrent programs (2007)
  14. Briand, L.C.; Labiche, Y.; Cui, J.: Automated support for deriving test requirements from UML statecharts (2005) ioport
  15. Briand, L.C.; Labiche, Y.; Cui, J.: Automated support for deriving test requirements from UML statecharts (2005) ioport
  16. Roşu, Grigore; Havelund, Klaus: Rewriting-based techniques for runtime verification (2005) ioport
  17. Weimer, Westley; Necula, George C.: Mining temporal specifications for error detection (2005)
  18. Artho, Cyrille; Havelund, Klaus; Biere, Armin: Using block-local atomicity to detect stale-value concurrency errors (2004)
  19. Artho, Cyrille; Schuppan, Viktor; Biere, Armin; Eugster, Pascal; Baur, Marcel; Zweimüller, Boris: JNuke: Efficient dynamic analysis for Java (2004)
  20. Ball, Thomas; Cook, Byron; Lahiri, Shuvendu K.; Zhang, Lintao: Zapato: Automatic theorem proving for predicate abstraction refinement (2004)

1 2 next