首页> 外文学位 >Dynamic Analysis Techniques for Effective and Efficient Debugging.
【24h】

Dynamic Analysis Techniques for Effective and Efficient Debugging.

机译:用于高效调试的动态分析技术。

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

摘要

Debugging is a tedious and time-consuming process for software developers. Therefore, providing effective and efficient debugging tools is essential for improving programmer productivity. Existing tools for debugging suffer from various drawbacks -- general-purpose debuggers provide little guidance for the programmers in locating the bug source while specialized debuggers require knowledge of the type of bug encountered. This dissertation makes several advances in debugging leading to effective, efficient, and extensible framework for interactive debugging of singlethreaded programs and deterministic debugging of multithreaded programs.;This dissertation presents the Qzdb debugger for singlethreaded programs that raises the abstraction level of debugging by introducing high-level and powerful state alteration and state inspection capabilities. Case studies on 5 real reported bugs in 5 popular real programs demonstrate its effectiveness. To support integration of specialized debugging algorithms into Qzdb, a new approach for constructing debuggers is developed that employs declarative specification of bug conditions and their root causes, and automatic generation of debugger code. Experiments show that about 3,300 lines of C code are generated automatically from only 8 lines of specification for 6 memory bugs. Thanks to the effective generated bug locators, for the 8 real-worlds bugs we have applied our approach to, users have to examine just 1 to 16 instructions. To reduce the runtime overhead of dynamic analysis used during debugging, relevant input analysis is developed and employed to carry out input simplification and execution simplification which reduce the length of analyzed execution by reducing the input size and limiting the analysis to subset of the execution. Experiments show that relevant input analysis based input simplification algorithm is both efficient and effective -- it only requires 11% to 21% test runs of that needed by standard delta debugging algorithm and generates even smaller inputs.;Finally, to demonstrate that the above approach can also be used for debugging multithreaded programs, this dissertation presents DrDebug , a deterministic and cyclic debugging framework. DrDebug allows efficient debugging by tailoring the scope of replay to a buggy execution region and an execution slice of a buggy region. Case studies of real reported concurrency bugs show that the buggy execution region size is less than 1 million instructions and the lengths of buggy execution region and execution slice are less than 15% and 7% of the total execution respectively.
机译:对于软件开发人员而言,调试是一个繁琐且耗时的过程。因此,提供有效的调试工具对于提高程序员的生产力至关重要。现有的调试工具有很多弊端-通用调试器几乎没有为程序员提供有关查找错误源的指导,而专用调试器则需要了解遇到的错误类型。本文在调试方面取得了一些进步,从而为单线程程序的交互式调试和多线程程序的确定性调试提供了有效,高效和可扩展的框架。本文介绍了单线程程序的Qzdb调试器,它通过引入高级代码来提高调试的抽象水平级别和强大的状态变更和状态检查功能。对5个流行的真实程序中5个真实报告的错误的案例研究证明了其有效性。为了支持将专用调试算法集成到Qzdb中,开发了一种构造调试器的新方法,该方法采用了声明性的错误条件及其根本原因,并自动生成了调试器代码。实验表明,仅针对6个内存错误的8行规范自动生成了大约3,300行C代码。得益于有效生成的错误定位器,对于我们将我们的方法应用于其中的8个实际错误,用户只需检查1至16条指令即可。为了减少调试期间使用的动态分析的运行时开销,开发了相关的输入分析并将其用于执行输入简化和执行简化,从而通过减小输入大小并将分析限制为执行子集来缩短分析执行的时间。实验表明,基于相关输入分析的输入简化算法既有效又有效-仅需要标准delta调试算法所需的11%到21%的测试运行,并生成甚至更小的输入。最后,证明上述方法也可以用于调试多线程程序,本文介绍了DrDebug,这是一种确定性的循环调试框架。 DrDebug通过将重播范围调整为错误的执行区域和错误区域的执行片段,从而实现高效的调试。对实际报告的并发错误的案例研究表明,错误执行区的大小小于100万条指令,错误执行区和执行切片的长度分别小于总执行的15%和7%。

著录项

  • 作者

    Wang, Yan.;

  • 作者单位

    University of California, Riverside.;

  • 授予单位 University of California, Riverside.;
  • 学科 Computer Science.
  • 学位 Ph.D.
  • 年度 2014
  • 页码 188 p.
  • 总页数 188
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类
  • 关键词

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号