scispace - formally typeset
Proceedings ArticleDOI

Eraser: a dynamic data race detector for multi-threaded programs

Reads0
Chats0
TLDR
Eraser as mentioned in this paper uses binary rewriting techniques to monitor every shared memory reference and verify that consistent locking behavior is observed in lock-based multi-threaded programs, which can be used to detect data races.
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 undergraduate coursework and a multi-threaded Web search engine, that demonstrate the effectiveness of this approach.

read more

Citations
More filters

Non-intrusive on-the-fly data race detection using execution replay. ∗

TL;DR: There is no need to switch it off, hereby eliminating the possibility of Heisenbugs because tracing can be left on all the time, and the usage of multilevel bitmaps and snooped matrix clocks limits the amount of memory used.
Proceedings ArticleDOI

Optimistic Hybrid Analysis: Accelerating Dynamic Analysis through Predicated Static Analysis

TL;DR: This paper argues that current hybrid analysis is needlessly hampered by an incorrect assumption that preserving the soundness of dynamic analysis requires an underlying sound static analysis, and proposes a new approach, called optimistic hybrid analysis.
Book ChapterDOI

Dynamic characterization of web application interfaces

TL;DR: This paper presents methodologies for characterizing the interfaces of web applications through a form of dynamic analysis, in which directed requests are sent to the application, and responses are analyzed to draw inferences about its interface.
Proceedings ArticleDOI

Dynamic race detection for C++11

TL;DR: The results show that the method can detect races that are beyond the scope of the original tsan tool, and that the overhead associated with applying the enhanced instrumentation to large applications is tolerable.
Proceedings ArticleDOI

FCatch: Automatically Detecting Time-of-fault Bugs in Cloud Systems

TL;DR: This paper carefully models time-of-fault bugs as a new type of concurrency bugs, and develops FCatch to automatically predict TOF bugs by observing correct execution, and Evaluation on representative cloud systems shows that FCatch is effective, accurately finding severe ToF bugs.
References
More filters
Book ChapterDOI

Time, clocks, and the ordering of events in a distributed system

TL;DR: In this paper, the concept of one event happening before another in a distributed system is examined, and a distributed algorithm is given for synchronizing a system of logical clocks which can be used to totally order the events.
Journal ArticleDOI

Time, clocks, and the ordering of events in a distributed system

TL;DR: In this article, the concept of one event happening before another in a distributed system is examined, and a distributed algorithm is given for synchronizing a system of logical clocks which can be used to totally order the events.
Journal ArticleDOI

Monitors: an operating system structuring concept

TL;DR: In this paper, the authors develop Brinch-Hansen's concept of a monitor as a method of structuring an operating system and describe a possible method of implementation in terms of semaphores and give a suitable proof rule.
Proceedings ArticleDOI

Extensibility safety and performance in the SPIN operating system

TL;DR: This paper describes the motivation, architecture and performance of SPIN, an extensible operating system that provides an extension infrastructure together with a core set of extensible services that allow applications to safely change the operating system's interface and implementation.
Proceedings ArticleDOI

ATOM: a system for building customized program analysis tools

TL;DR: ATOM as mentioned in this paper is a single framework for building a wide range of customized program analysis tools, including block counting, profiling, dynamic memory recording, instruction and data cache simulation, pipeline simulation, evaluating branch prediction, and instruction scheduling.