The document describes techniques for fault localization in concurrent software. It presents three techniques: FALCON, which localizes single-variable faults; UNICORN, which extends FALCON to localize multi-variable faults; and GRIFFIN, which provides fault explanations by identifying memory access patterns, calling contexts, and suspicious methods. These techniques are implemented in debugging tools Tracer, Unicorn and Griffin. An empirical user study is conducted to evaluate whether the tools help developers understand and fix concurrency bugs.
Related topics: