论文标题

锚点:定位特定于Android框架特定的崩溃故障

Anchor: Locating Android Framework-specific Crashing Faults

论文作者

Kong, Pingfan, Li, Li, Gao, Jun, Riom, Timothée, Zhao, Yanjie, Bissyandé, Tegawendé F., Klein, Jacques

论文摘要

特定于Android框架的应用程序崩溃很难进行调试。确实,基于回调的事件驱动的Android挑战机制崩溃了本地化技术,该技术是为传统Java程序开发的。关键挑战源于以下事实:堆栈跟踪中甚至可能未列出故障代码位置。例如,我们对从开放基准的500个框架特定崩溃的实证研究表明,37%的崩溃类型与堆栈痕迹以外的错误有关。此外,Android程序是代码和诸如清单文件之类的超代码工件的混合物。任何工件都可以导致应用程序执行失败的事实创造了将本地化目标定位到代码领域之外的必要性。在本文中,我们提出了Anchor,这是一种两相可疑的错误位置建议工具。 Anchor专门研究在堆栈跟踪外查找撞车的错误。锚是轻巧和源代码独立的,因为它仅需要崩溃消息和APK文件才能找到故障。通过交叉验证和野外数据集评估收集的实验结果表明,锚有效地定位了特定于Android框架的崩溃故障。

Android framework-specific app crashes are hard to debug. Indeed, the callback-based event-driven mechanism of Android challenges crash localization techniques that are developed for traditional Java programs. The key challenge stems from the fact that the buggy code location may not even be listed within the stack trace. For example, our empirical study on 500 framework-specific crashes from an open benchmark has revealed that 37 percent of the crash types are related to bugs that are outside the stack traces. Moreover, Android programs are a mixture of code and extra-code artifacts such as the Manifest file. The fact that any artifact can lead to failures in the app execution creates the need to position the localization target beyond the code realm. In this paper, we propose Anchor, a two-phase suspicious bug location suggestion tool. Anchor specializes in finding crash-inducing bugs outside the stack trace. Anchor is lightweight and source code independent since it only requires the crash message and the apk file to locate the fault. Experimental results, collected via cross-validation and in-the-wild dataset evaluation, show that Anchor is effective in locating Android framework-specific crashing faults.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源