Explaining software failures by cascade fault localization
© 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 preconditio...
| Main Authors: | , , , , |
|---|---|
| Format: | Journal Article |
| Published: |
Association of Computing Machinery
2015
|
| Online Access: | http://hdl.handle.net/20.500.11937/72416 |
| _version_ | 1848762744676810752 |
|---|---|
| author | Yi, Q. Yang, Z. Liu, Jian Zhao, C. Wang, C. |
| author_facet | Yi, Q. Yang, Z. Liu, Jian Zhao, C. Wang, C. |
| author_sort | Yi, Q. |
| building | Curtin Institutional Repository |
| collection | Online Access |
| description | © 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. |
| first_indexed | 2025-11-14T10:52:26Z |
| format | Journal Article |
| id | curtin-20.500.11937-72416 |
| institution | Curtin University Malaysia |
| institution_category | Local University |
| last_indexed | 2025-11-14T10:52:26Z |
| publishDate | 2015 |
| publisher | Association of Computing Machinery |
| recordtype | eprints |
| repository_type | Digital Repository |
| spelling | curtin-20.500.11937-724162018-12-13T09:34:51Z Explaining software failures by cascade fault localization Yi, Q. Yang, Z. Liu, Jian Zhao, C. Wang, C. © 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. 2015 Journal Article http://hdl.handle.net/20.500.11937/72416 10.1145/2738038 Association of Computing Machinery restricted |
| spellingShingle | Yi, Q. Yang, Z. Liu, Jian Zhao, C. Wang, C. Explaining software failures by cascade fault localization |
| title | Explaining software failures by cascade fault localization |
| title_full | Explaining software failures by cascade fault localization |
| title_fullStr | Explaining software failures by cascade fault localization |
| title_full_unstemmed | Explaining software failures by cascade fault localization |
| title_short | Explaining software failures by cascade fault localization |
| title_sort | explaining software failures by cascade fault localization |
| url | http://hdl.handle.net/20.500.11937/72416 |