首页> 外文会议>ACM/IEEE International Symposium on Computer Architecture >Replay Debugging: Leveraging Record and Replay for Program Debugging
【24h】

Replay Debugging: Leveraging Record and Replay for Program Debugging

机译:重播调试:用于程序调试的记录和重播

获取原文

摘要

Hardware-assisted Record and Deterministic Replay (RnR) of programs has been proposed as a primitive for debugging hard-to-repeat software bugs. However, simply providing support for repeatedly stumbling on the same bug does not help diagnose it. For bug diagnosis, developers typically want to modify the code, e.g., by creating and operating on new variables, or printing state. Unfortunately, this renders the RnR log inconsistent and makes Replay Debugging (i.e., debugging while using an RnR log for replay) dicey at best. This paper presents rdb, the first scheme for replay debugging that guarantees exact replay, rdb relies on two mechanisms. The first one is compiler support to split the instrumented application into two executables: one that is identical to the original program binary, and another that encapsulates all the added debug code. The second mechanism is a runtime infrastructure that replays the application and, without affecting it in any way, invokes the appropriate debug code at the appropriate locations. We describe an implementation of rdb based on LLVM and Pin, and show an example of how rdb's replay debugging helps diagnose a real bug.
机译:已经提出了硬件辅助记录和确定性重播(RNR)作为调试难以重复的软件错误的原始。但是,只需在相同的错误上重复绊倒的支持并不有助于诊断它。对于错误诊断,开发人员通常希望通过在新变量或打印状态下创建和运行来修改代码。不幸的是,这使得RNR日志不一致,并使重放调试(即,使用RNR日志以重播的时调试)骰子。本文介绍了RDB,重播调试的第一个方案,可确保确切的重播,RDB依赖于两个机制。第一个是编译器支持将仪器应用程序拆分为两个可执行文件:与原始程序二进制相同的应用程序,另一个封装所有添加的调试代码。第二种机制是重播应用程序的运行时基础架构,而不会以任何方式影响它,在适当的位置调用适当的调试代码。我们描述了基于LLVM和PIN的RDB的实现,并显示RDB重播调试如何帮助诊断真正的错误的示例。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号