Locating Framework-specific Crashing Faults with Compact and Explainable Candidate Set
Jiwei Yan, Miaomiao Wang, Yepang Liu, Jun Yan, Long Zhang
Abstract
Nowadays, many applications do not exist independently but rely on various frameworks or libraries. The frequent evolution and the complex implementation of framework APIs induce lots of unexpected post-release crashes. Starting from the crash stack traces, existing approaches either perform application-level call graph (CG) tracing or construct datasets with similar crash-fixing records to locate buggy methods. However, these approaches are limited by the completeness of CG or dependent on historical fixing records, and some of them only focus on specific manually modeled exception types. To achieve effective debugging on complex framework-specific crashes, we propose a code-separation-based locating approach that weakly relies on CG tracing and does not require any prior knowledge. Our key insight is that one crash trace with the description message can be mapped to a definite exception-thrown point in the framework, the semantics analysis of which can help to figure out the root causes of the crash-triggering procedure. Thus, we can pre-construct reusable summaries for all the framework-specific exceptions to support fault localization in application code. Based on that idea, we design the exception-thrown summary (ETS) that describes both the key variables and key APIs related to the exception triggering. Then, we perform static analysis to automatically compute such summaries and make a data-tracking of key variables and APIs in the application code to get the ranked buggy candidates. In the scenario of locating Android framework-specific crashing faults, our tool CrashTracker exhibited an overall MRR value of 0.91 and outperforms the state-of-the-art tool Anchor with higher precision. It only provides a compact candidate set and gives user-friendly reports with explainable reasons for each candidate.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext b2cddef9-44bd-45b6-9d03-a33f5855e836Builds on2
- Boosting coverage-based fault localization via graph-based representation learningYiling Lou, Qihao Zhu, Jinhao Dong, Xia Li et al.FSE 2021 · 157 citations
- RAICC: Revealing Atypical Inter-Component Communication in Android AppsJordan Samhi, Alexandre Bartel, Tegawendé F. Bissyandé, Jacques KleinICSE 2021 · 3 citations
Related papers
- Automatic Solution Summarization for Crash BugsHaoye Wang, Xin Xia, David Lo, John C. Grundy et al.ICSE 2021 · 14 citations
- From Suspicious Signals to Crashes: Guiding Bug-Driven GUI Testing via Code-Inspired TracingMengzhuo Chen, Zhe Liu, Chunyang Chen, Junjie Wang et al.FSE 2026
- KG4CraSolver: Recommending Crash Solutions via Knowledge GraphXueying Du, Yiling Lou, Mingwei Liu, Xin Peng et al.FSE 2023 · 3 citations
- Context-aware Bug Reproduction for Mobile AppsYuchao Huang, Junjie Wang, Zhe Liu, Song Wang et al.ICSE 2023 · 7 citations
- Automatically Reproducing Android Bug Reports using Natural Language Processing and Reinforcement LearningZhaoxu Zhang, Robert Winn, Yu Zhao, Tingting Yu et al.ISSTA 2023 · 14 citations
