【24h】

Reusing Debugging Knowledge via Trace-based Bug Search

机译:通过基于跟踪的错误搜索重用调试知识

获取原文
获取原文并翻译 | 示例
获取外文期刊封面目录资料

摘要

Some bugs, among the millions that exist, are similar to each other. One bug-fixing tactic is to search for similar bugs that have been reported and resolved in the past. A fix for a similar bug can help a developer understand a bug, or even directly fix it. Studying bugs with similar symptoms, programmers may determine how to detect or resolve them. To speed debugging, we advocate the systematic capture and reuse of debugging knowledge, much of which is currently wasted. The core challenge here is how to search for similar bugs. To tackle this problem, we exploit semantic bug information in the form of execution traces, which precisely capture bug semantics. This paper introduces novel tool and language support for semantically querying and analyzing bugs. We describe OSCILLOSCOPE, an Eclipse plugin, that uses a bug trace to exhaustively search its database for similar bugs and return their bug reports. OSCILLOSCOPE displays the traces of the bugs it returns against the trace of the target bug, so a developer can visually examine the quality of the matches. OSCILLOSCOPE rests on our bug query language (BQL), a flexible query language over traces. To realize OSCILLOSCOPE, we developed an open infrastructure that consists of a trace collection engine, BQL, a Hadoop-based query engine for BQL, a trace-indexed bug database, as well as a web-based frontend. OSCILLOSCOPE records and uploads bug traces to its infrastructure; it does so automatically when a JUnit test fails. We evaluated OSCILLOSCOPE on bugs collected from popular open-source projects. We show that OSCILLOSCOPE accurately and efficiently finds similar bugs, some of which could have been immediately used to fix open bugs.
机译:在存在的数百万个错误中,有些错误彼此相似。一种错误修复策略是搜索过去已报告并解决的类似错误。对类似错误的修复可以帮助开发人员理解错误,甚至可以直接对其进行修复。通过研究具有类似症状的错误,程序员可以确定如何检测或解决它们。为了加快调试速度,我们提倡系统性地捕获和重用调试知识,而当前很多知识已经浪费掉了。这里的核心挑战是如何搜索类似的错误。为了解决此问题,我们以执行跟踪的形式利用语义错误信息,该信息可精确捕获错误语义。本文介绍了用于语义查询和分析错误的新颖工具和语言支持。我们描述了OSCILLOSCOPE,这是一个Eclipse插件,它使用错误跟踪彻底搜索其数据库中的相似错误并返回其错误报告。 OSCILLOSCOPE会根据目标错误的踪迹显示它返回的错误踪迹,因此开发人员可以直观地检查匹配的质量。 OSCILLOSCOPE基于我们的错误查询语言(BQL),它是一种基于跟踪的灵活查询语言。为了实现OSCILLOSCOPE,我们开发了一个开放的基础结构,该基础结构包括跟踪收集引擎BQL,用于BQL的基于Hadoop的查询引擎,跟踪索引的错误数据库以及基于Web的前端。 OSCILLOSCOPE记录错误跟踪并将其跟踪上传到其基础结构;当JUnit测试失败时,它会自动这样做。我们从流行的开源项目中收集的错误评估了OSCILLOSCOPE。我们显示OSCILLOSCOPE可以准确有效地找到类似的错误,其中一些本可以立即用于修复未解决的错误。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号