Affiliation:
1. University of Illinois at Urbana-Champaign
Abstract
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
Funder
University of Illinois at Urbana-Champaign
Division of Computing and Communication Foundations
Division of Computer and Network Systems
Publisher
Association for Computing Machinery (ACM)
Reference47 articles.
1. "GDB: The GNU Project Debugger " http://www.gnu.org/software/gdb/. "GDB: The GNU Project Debugger " http://www.gnu.org/software/gdb/.
2. "The LLVM Compiler Infrastructure " http://llvm.org/. "The LLVM Compiler Infrastructure " http://llvm.org/.
3. ODR
4. Karma
Cited by
2 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Vidi: Record Replay for Reconfigurable Hardware;Proceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 3;2023-03-25
2. Execution reconstruction: harnessing failure reoccurrences for failure reproduction;Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation;2021-06-18