Explaining software failures by cascade fault localization

  • Qiuping Yi
  • , Zijiang Yang
  • , Jian Liu
  • , Chen Zhao
  • , Chao Wang

Research output: Contribution to journalArticlepeer-review

7 Scopus citations

Abstract

During software debugging, a significant amount of effort is required for programmers to identify the root cause of a manifested failure. In this article, we propose a cascade fault localization method to help speed up this labor-intensive process via a combination of weakest precondition computation and constraint solving. Our approach produces a cause tree, where each node is a potential cause of the failure and each edge represents a casual relationship between two causes. There are two main contributions of this article that differentiate our approach from existing methods. First, our method systematically computes all potential causes of a failure and augments each cause with a proper context for ease of comprehension by the user. Second, our method organizes the potential causes in a tree structure to enable on-the-fly pruning based on domain knowledge and feedback from the user. We have implemented our new method in a software tool called CaFL, which builds upon the LLVM compiler and KLEE symbolic virtual machine. We have conducted experiments on a large set of public benchmarks, including real applications from GNU Coreutils and Busybox. Our results show that in most cases the user has to examine only a small fraction of the execution trace before identifying the root cause of the failure.

Original languageEnglish
Article number41
JournalACM Transactions on Design Automation of Electronic Systems
Volume20
Issue number3
DOIs
StatePublished - 1 Jun 2015

Keywords

  • Constraint
  • Fault localization
  • Satisfiability modulo theory (SMT)
  • Weakest precondition

Fingerprint

Dive into the research topics of 'Explaining software failures by cascade fault localization'. Together they form a unique fingerprint.

Cite this