Proceedings of the Sixteenth ACM Symposium on Operating Systems Principles 1997
DOI: 10.1145/268998.266641
|View full text |Cite
|
Sign up to set email alerts
|

Eraser

Abstract: Multi-threaded 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 paper describes a new tool, called Eraser, for dynamically detecting data races in lock-based multi-threaded programs. Eraser uses binary rewriting techniques to monitor every shared memory reference and verify that consistent locking behavior is observed. We present several case studies, including undergra… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1

Citation Types

0
4
0

Year Published

2001
2001
2023
2023

Publication Types

Select...
4
2
1

Relationship

0
7

Authors

Journals

citations
Cited by 163 publications
(4 citation statements)
references
References 13 publications
0
4
0
Order By: Relevance
“…(Coyote only instruments at the level of task APIs or synchronization operations.) Nonetheless, coyote rewrite is extensible, and the door is open for any contributor to take on this responsibility and implement race detection [22,49,23,51,50]. 3 Coyote Test Engine…”
Section: Architecture Extensibilitymentioning
confidence: 99%
See 1 more Smart Citation
“…(Coyote only instruments at the level of task APIs or synchronization operations.) Nonetheless, coyote rewrite is extensible, and the door is open for any contributor to take on this responsibility and implement race detection [22,49,23,51,50]. 3 Coyote Test Engine…”
Section: Architecture Extensibilitymentioning
confidence: 99%
“…For the assertion in this program to fail, an interleaving must essentially execute t1 to completion before t2 gets a chance. The chance of RW producing this interleaving is tiny: around 1 in 2 50 . If we imagine a thread-based scenario (ideal setting for PCT), where RunTest created two threads instead of tasks, then PCT (with d = 0) has 50% probability of hitting this bug.…”
Section: Exploration Strategiesmentioning
confidence: 99%
“…A large amount of research work has been devoted to detecting data races in OpenMP programs [2,3,5,6,14,16,18]. Based on the detection mechanisms, there are typically two types of race detection tools: static and dynamic.…”
Section: Related Workmentioning
confidence: 99%
“…That is, the two accesses may exhibit different execution results due to the lack of necessary synchronization to determine their happens-before order. To facilitate the detection of data races, a large amount of research effort has been devoted to automatic data race detection [2,3,5,6,14,18]. They typically employ a variety of static and dynamic program analysis techniques to figure out whether memory accesses issued by different threads may constitute data races.…”
mentioning
confidence: 99%