Sciweavers

ASPLOS
2011
ACM

ConSeq: detecting concurrency bugs through sequential errors

13 years 2 months ago
ConSeq: detecting concurrency bugs through sequential errors
Concurrency bugs are caused by non-deterministic interleavings between shared memory accesses. Their effects propagate through data and control dependences until they cause software to crash, hang, produce incorrect output, etc. The lifecycle of a bug thus consists of three phases: (1) triggering, (2) propagation, and (3) failure. Traditional techniques for detecting concurrency bugs mostly focus on phase (1)—i.e., on finding certain structural patterns of interleavings that are common triggers of concurrency bugs, such as data races. This paper explores a consequence-oriented approach to improving the accuracy and coverage of state-space search and bug detection. The proposed approach first statically identifies potential failure sites in a program binary (i.e., it first considers a phase (3) issue). It then uses static slicing to identify critical read instructions that are highly likely to affect potential failure sites through control and data dependences (phase (2)). Finall...
Wei Zhang, Junghee Lim, Ramya Olichandran, Joel Sc
Added 24 Aug 2011
Updated 24 Aug 2011
Type Journal
Year 2011
Where ASPLOS
Authors Wei Zhang, Junghee Lim, Ramya Olichandran, Joel Scherpelz, Guoliang Jin, Shan Lu, Thomas W. Reps
Comments (0)