Anchor:查找Android框架特定的崩溃故障
Anchor: Locating Android Framework-specific Crashing Faults
摘要:
Android框架特定的应用程序崩溃很难调试。事实上,Android基于回调的事件驱动机制挑战了为传统Java程序开发的崩溃本地化技术。关键的挑战源于这样一个事实,即错误代码的位置甚至可能没有在堆栈跟踪中列出。例如,我们对来自一个开放基准测试的500个特定于框架的崩溃进行了实证研究,发现37%的崩溃类型与堆栈跟踪之外的错误有关。此外,Android程序是代码和额外代码工件(如Manifest文件)的混合体。任何工件都可能导致应用程序执行失败,这一事实导致需要将本地化目标定位在代码领域之外。在本文中,我们提出了锚,一个两阶段的可疑错误定位建议工具。Anchor专门用于在堆栈跟踪之外查找导致崩溃的错误。Anchor是轻量级的,并且与源代码无关,因为它只需要崩溃消息和apk文件来定位故障。通过交叉验证和野外数据集评估收集的实验结果表明,Anchor在定位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.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。