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
Proceedings ArticleDOI

Changes and bugs — Mining and predicting development activities

Zimmermann
TL;DR: In this article, the authors introduce the concept of co-addition of method calls, which is used to identify patterns that describe how methods should be called, and use dynamic analysis to validate these patterns and identify violations.
Proceedings ArticleDOI

Strengthening induction-based race checking with lightweight static analysis

TL;DR: It is shown that the applicability of k-induction can be significantly improved when combined with three inexpensive static analyses: 1) abstract-interpretation-based static analysis; 2) chunking, a domain-specific invariant generation technique; and 3) code transformations based on statement independence.
Proceedings ArticleDOI

ATDetector: improving the accuracy of a commercial data race detector by identifying address transfer

TL;DR: An algorithm is designed and implemented that automatically identify address transfer and use the information to prune the false data races, without eliminating any true data race that was originally reported.
Book ChapterDOI

Multi-objective Genetic Optimization for Noise-Based Testing of Concurrent Software

TL;DR: This paper focuses on generation of TNCS solutions that cover a high number of distinct interleavings and provide stable results at the same time and studies suitable metrics and ways how to suppress effects of non-deterministic thread scheduling on the proposed MOGA-based approach.
Journal ArticleDOI

Surveying concurrency bug detectors based on types of detected bugs

TL;DR: This paper surveys the most up-to-date and well-known concurrency bug detectors, categorizing the existing detectors based on the types of concurrency bugs, and concludes some future research directions, including accuracy, performance, applicability, and integrality.
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.