rr-debugger/rr 是一个用于调试的工具,它记录并重新播放 GitHub 上公开的应用程序的进程与线程树执行。该仓库自称为 Record and Replay Framework,用 C++ 编写。最新发布版本是 5.10.0,但可查到的信息中没有列出该版本的变更内容,因此具体有哪些不同并不清楚。
这个工具的做法是把执行原样记录下来,然后在 gdb 中回放。可复现的执行记录可以再次展开,反复查看同一个位置;也可以反向移动到出问题的位置,逐步缩小原因范围。逆向执行是把程序已经走过的路径倒着回溯,用来确认 bug 出现之前的状态。README 说明 rr 是一个轻量工具,它扩展 gdb 以支持高效的逆向执行,并与标准 gdb/x86 中像硬件数据观察点那样监视内存访问的功能结合,帮助调试。该仓库始于 2011 年 8 月 25 日,目前累计 10710 个 star。
不过许可证只记录为 NOASSERTION,因此无法得知实际的使用条件。可查到的信息中既没有展示逆向执行性能的基准测试数据,也没有技术、新颖性、质量方面的评分。动量分在 10 分制下只有 1.1,偏低。在性能对比与使用条件得到确认之前,它只值得在确实需要逆向调试的场景下试用。