首页> 外文学位 >Enabling and supporting the debugging of software failures.
【24h】

Enabling and supporting the debugging of software failures.

机译:启用并支持软件故障的调试。

获取原文
获取原文并翻译 | 示例

摘要

Debugging is an expensive activity that can be responsible for a significant part of the cost of software maintenance. This is especially true for today's software, whose complexity, configurability, portability, and dynamism exacerbate debugging challenges. Therefore, techniques for improving the efficiency and effectiveness of debugging can be extremely beneficial in reducing the overall cost of software development and, at the same time, improving software quality. In the last few years, there has been a great deal of research aimed at developing techniques that support automated or semi-automated debugging. These novel techniques have greatly contributed to the collective body of knowledge and have advanced the state of the art. However, an additional leap forward must be taken for automated debugging approaches to be effective when applied in real-life scenarios. Most current debugging approaches suffer from several limitations, including the assumption that developers are able to reliably and easily reproduce the targeted failure and that examining a faulty statement in isolation is always enough for a developer to detect, understand, and fix the corresponding bug.;This dissertation evaluates the following thesis statement: Program analysis techniques can enable and support the debugging of failures in widely-used applications by (1) capturing, replaying, and, as much as possible, anonymizing failing executions and (2) highlighting subsets of failure-inducing inputs that are likely to be helpful for debugging such failures. To investigate this thesis, I developed techniques for recording, minimizing, and replaying executions captured from users' machines, anonymizing execution recordings, and automatically identifying failure-relevant inputs. I then performed experiments to evaluate the techniques in realistic scenarios using real applications and real failures. The results of these experiments demonstrate that the techniques can reduce the cost and difficulty of debugging.
机译:调试是一项昂贵的活动,可能占软件维护成本的很大一部分。对于当今的软件尤其如此,其复杂性,可配置性,可移植性和动态性加剧了调试挑战。因此,用于提高调试效率和有效性的技术在降低软件开发的总体成本并同时提高软件质量方面将极为有益。在过去的几年中,进行了大量的研究,旨在开发支持自动化或半自动化调试的技术。这些新颖的技术极大地促进了知识的集体发展,并发展了最先进的技术。但是,要在实际场景中应用自动调试方法有效,必须采取进一步的飞跃。当前大多数的调试方法都有一些局限性,包括以下假设:开发人员能够可靠,轻松地重现目标故障,并且孤立地检查错误语句始终足以使开发人员能够检测,理解和修复相应的错误。本文对以下论文的陈述进行了评估:程序分析技术可以通过(1)捕获,重放和尽可能匿名化失败的执行,以及(2)突出显示失败的子集,来启用和支持广泛应用程序中的失败调试。 -诱导可能有助于调试此类故障的输入。为了研究此论文,我开发了用于记录,最小化和重放从用户的计算机捕获的执行,匿名化执行记录并自动识别与故障相关的输入的技术。然后,我进行了实验,以使用真实的应用程序和真实的失败情况在实际场景中评估技术。这些实验的结果表明,该技术可以降低成本和调试难度。

著录项

  • 作者

    Clause, James Alexander.;

  • 作者单位

    Georgia Institute of Technology.;

  • 授予单位 Georgia Institute of Technology.;
  • 学科 Computer Science.
  • 学位 Ph.D.
  • 年度 2011
  • 页码 128 p.
  • 总页数 128
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类
  • 关键词

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号