Explaining software failures by cascade fault localization
|dc.identifier.citation||Yi, Q. and Yang, Z. and Liu, J. and Zhao, C. and Wang, C. 2015. Explaining software failures by cascade fault localization. ACM Transactions on Design Automation of Electronic Systems. 20 (3).|
© 2015 ACM. 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.
|dc.publisher||Association of Computing Machinery|
|dc.title||Explaining software failures by cascade fault localization|
|dcterms.source.title||ACM Transactions on Design Automation of Electronic Systems|
|curtin.department||WASM: Minerals, Energy and Chemical Engineering (WASM-MECE)|
|curtin.accessStatus||Fulltext not available|
Files in this item
There are no files associated with this item.