工程开发
rr-debugger avatar

rr-debugger

适用于 Linux 的确定性记录与重放调试工具,提供反向执行、reverse-next 和 reverse-step 指令,用于分析崩溃与 ASAN 错误。

简介

rr-debugger 技能提供了 rr (Record and Replay) 框架的接口,使开发人员与安全研究人员能够对 C/C++ 应用程序进行确定性调试。与传统只能向前执行的调试器不同,rr 会撷取程序的完整执行过程,使用户能够回溯时间,检查寄存器、内存和局部变量在执行轨迹中任何一点的精确状态。这对于分类非确定性错误、竞争条件或复杂的软件崩溃非常有效,特别是在难以重现根本原因的情况下。

  • 支持二进制执行的确定性记录与重放。

  • 支持完整的反向执行,包含 reverse-next、reverse-step、reverse-continue 与 reverse-stepi 指令。

  • 通过允许用户从故障点回溯到触发内存违规的确切指令,简化了对 ASAN (AddressSanitizer) 错误的分析。

  • 支持使用与 GDB 兼容的指令进行内存检查,包括打印变量、指针解引用与十六进制格式内存查看。

  • 提供源代码与汇编语言视图,方便深入观察执行逻辑。

  • 包含通过脚本自动化进行崩溃轨迹提取的支持,非常适合大规模漏洞研究工作流程。

  • 此工具专为进阶二进制分析与安全研究而设计,最适合在支持 rr 的 Linux 环境中使用。

  • 输入要求:在启动调试器并进行 rr replay 之前,必须先使用 rr record 记录二进制文件。

  • 操作限制:需要具有特定 Linux 内核配置的容器或环境(例如 Docker 中的 --privileged 模式),以启用记录与重放功能的性能计数器。

  • 非常适合用于内存损坏、段错误 (Segmentation Fault) 及复杂逻辑错误的根本原因分析 (RCA),在难以重现确切崩溃序列的情境中特别实用。

仓库统计

Star 数
2,379
Fork 数
367
Open Issue 数
18
主要语言
Python
默认分支
main
同步状态
空闲
最近同步时间
2026年4月28日 13:27
在 GitHub 查看