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...

Full description

Bibliographic Details
Main Authors: Yi, Q., Yang, Z., Liu, Jian, Zhao, C., Wang, C.
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