A survey on software fault localization
Software fault localization, the act of identifying the locations of faults in a program, is widely
recognized to be one of the most tedious, time consuming, and expensive-yet equally critical …
recognized to be one of the most tedious, time consuming, and expensive-yet equally critical …
Maximal sound predictive race detection with control flow abstraction
Despite the numerous static and dynamic program analysis techniques in the literature, data
races remain one of the most common bugs in modern concurrent software. Further, the …
races remain one of the most common bugs in modern concurrent software. Further, the …
Software fault localization: An overview of research, techniques, and tools
This chapter describes traditional and intuitive fault localization techniques, including
program logging, assertions, breakpoints, and profiling. Many advanced fault localization …
program logging, assertions, breakpoints, and profiling. Many advanced fault localization …
Sound predictive race detection in polynomial time
Data races are among the most reliable indicators of programming errors in concurrent
software. For at least two decades, Lamport's happens-before (HB) relation has served as …
software. For at least two decades, Lamport's happens-before (HB) relation has served as …
Maple: A coverage-driven testing tool for multithreaded programs
Testing multithreaded programs is a hard problem, because it is challenging to expose
those rare interleavings that can trigger a concurrency bug. We propose a new thread …
those rare interleavings that can trigger a concurrency bug. We propose a new thread …
Sound and efficient concurrency bug prediction
Concurrency bugs are extremely difficult to detect. Recently, several dynamic techniques
achieve sound analysis. M2 is even complete for two threads. It is designed to decide …
achieve sound analysis. M2 is even complete for two threads. It is designed to decide …
Predictive monitoring against pattern regular languages
While current bug detection techniques for concurrent software focus on unearthing low-
level issues such as data races or deadlocks, they often fall short of discovering more …
level issues such as data races or deadlocks, they often fall short of discovering more …
Optimal prediction of synchronization-preserving races
Concurrent programs are notoriously hard to write correctly, as scheduling nondeterminism
introduces subtle errors that are both hard to detect and to reproduce. The most common …
introduces subtle errors that are both hard to detect and to reproduce. The most common …
Ldx: Causality inference by lightweight dual execution
Causality inference, such as dynamic taint anslysis, has many applications (eg, information
leak detection). It determines whether an event e is causally dependent on a preceding …
leak detection). It determines whether an event e is causally dependent on a preceding …
Fast, sound, and effectively complete dynamic race prediction
A Pavlogiannis - Proceedings of the ACM on Programming Languages, 2019 - dl.acm.org
Writing concurrent programs is highly error-prone due to the nondeterminism in interprocess
communication. The most reliable indicators of errors in concurrency are data races, which …
communication. The most reliable indicators of errors in concurrency are data races, which …