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

DynaMine: finding common error patterns by mining software revision histories

TL;DR: The combination of revision history mining and dynamic analysis techniques leveraged in DynaMine proves effective for both discovering new application-specific patterns and for finding errors when applied to very large applications with many man-years of development and debugging effort behind them.
Proceedings ArticleDOI

Ambient wood: designing new forms of digital augmentation for learning outdoors

TL;DR: An outdoors learning experience is designed, aimed at encouraging students to carry out contextualized scientific enquiry and to reflect on their interactions, with a framework of the different forms of digital augmentation and the different processes by which they can be accessed.
Proceedings ArticleDOI

Object race detection

TL;DR: An on-the-fly mechanism that detects access conflicts in executions of multi-threaded Java programs and reduces the runtime overhead of detecting access conflicts to about 16-129% in time and less than 25% in space.
Proceedings ArticleDOI

From symptom to cause: localizing errors in counterexample traces

TL;DR: An algorithm is presented that exploits the existence of correct traces in order to localize the error cause in an error trace, report a single error trace per error cause, and generate multiple error traces having independent causes.
Journal ArticleDOI

RecPlay: a fully integrated practical record/replay system

TL;DR: An implementation of the tools needed to support RecPlay, a combination of record/replay with automatic on-the-fly data race detection, which enables to limit the record phase to the more efficient recording of the synchronization operations, while deferring the time-consuming dataRace detection to the replay phase.
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.