Chapter

Generating Data Race Witnesses by an SMT-Based Analysis

04/2011; DOI:10.1007/978-3-642-20398-5_23 pp.313-327
Source: DBLP

ABSTRACT Data race is one of the most dangerous errors in multithreaded programming, and despite intensive studies, it remains a notorious
cause of failures in concurrent systems. Detecting data races is already a hard problem, and yet it is even harder for a programmer
to decide whether or how a reported data race can appear in the actual program execution. In this paper we propose an algorithm for generating debugging
aid information called witnesses, which are concrete thread schedules that can deterministically trigger the data races. More specifically, given a concrete
execution trace, e.g. non-erroneous one which may have triggered a warning in Eraser-style data race detectors, we use a symbolic
analysis based on SMT solvers to search for a data race witness among alternative interleavings of events of that trace. Our
symbolic analysis precisely encodes the sequential consistency semantics using a scalable predictive model to ensure that
the reported witness is always feasible.

KeywordsData Race–Debug–SMT–Concurrent Programs

0 0
 · 
0 Bookmarks
 · 
20 Views

Keywords

alternative interleavings
 
concrete thread schedules
 
concurrent systems
 
dangerous errors
 
Data race
 
data race witness
 
data races
 
Detecting data races
 
Eraser-style data race detectors
 
events
 
intensive studies
 
KeywordsData Race–Debug–SMT–Concurrent Programs
 
multithreaded programming
 
reported data race
 
reported witness
 
scalable predictive model
 
sequential consistency semantics
 
witnesses