1997
DOI: 10.1145/265924.265927
|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...
3
1
1

Citation Types

3
847
0
4

Year Published

2006
2006
2023
2023

Publication Types

Select...
3
3
3

Relationship

0
9

Authors

Journals

citations
Cited by 1,181 publications
(854 citation statements)
references
References 6 publications
3
847
0
4
Order By: Relevance
“…Static analysis techniques addressing this issue include those based on type systems [6], model checking [16], and general program analysis [17]. There were also dynamic analysis techniques proposed like RecPlay [23] and Eraser [24] However, these techniques were subject to a significant number of false positives. In our approach, we cope with this issue by exploiting a probability score to rank the components instead of providing a binary decision.…”
Section: Related Workmentioning
confidence: 99%
“…Static analysis techniques addressing this issue include those based on type systems [6], model checking [16], and general program analysis [17]. There were also dynamic analysis techniques proposed like RecPlay [23] and Eraser [24] However, these techniques were subject to a significant number of false positives. In our approach, we cope with this issue by exploiting a probability score to rank the components instead of providing a binary decision.…”
Section: Related Workmentioning
confidence: 99%
“…if root ∈ minBi j [7] if reentrant (i j) [8] St += (j.n, L(i.m j.n)) [9] S t += (j.n, L(i.m j.n)) [10] else [11] St += (j.n, L(i.m j.n)) [12] if j.n not visited then W += j.n…”
Section: Object Race Detection Analysismentioning
confidence: 99%
“…Their object race detection is dynamic. In fact, a primary goal is to optimize dynamic lockset-based race detection [12]; the higher-level concept of object race entails fewer dynamic checks and therefore lower overhead. In later work, von Praun and Gross introduce the concept of the Object Use Graph (OUG) [16] which allows reasoning about the temporal relation of object accesses, and further reduces the amount of dynamic checks in the lockset-based detector.…”
Section: Related Workmentioning
confidence: 99%
“…This stems from a desire make concurrent programming easier, and to avoid common errors associated with locks and shared-memory [40]. For example message-passing frameworks such as PVM [19] and MPI [21] provide primitives similar to those presented in this paper, but do so for a course-grain network environment.…”
Section: Related Workmentioning
confidence: 99%