rr

记录和回放框架。(Record and Replay Framework)

Github stars Tracking Chart

概观

rr 是一款轻量级工具,用于记录、重放和调试程序(进程树和线程)的执行。调试扩展了 gdb,具有非常高效的反向执行功能,结合硬件数据监视点等标准 gdb/x86 功能,使调试更加有趣。有关该项目的更多信息,包括如何安装、运行和构建 rr 的说明,请访问 https://rr-project.org。目前最好的技术概述是论文 Engineering Record And Replay For Deployability: 工程记录和可部署性回放 扩展技术报告》。

或者直接访问安装和构建说明

请作出贡献!在提交拉取请求之前,请务必查看拉取请求清单。

如果您觉得 rr 有用,请添加推荐信

rr 的开发由 Pernosco 赞助,由 Mozilla 发起。

系统要求

  • Linux kernel ≥ 3.11 是必需的 (对于 PTRACE_SETSIGMASK).
  • rr 目前需要配备 Intel CPU with Nehalem (2010) 或更高版本微架构的 Intel CPU。
  • 只要 VM 支持硬件性能计数器的虚拟化,就支持在 VM guest 虚拟机上运行。(VMware 和 KVM 已知可以工作,Xen 不支持。)

(First edition: vz edited at 2019.08.24)

(Revised on 2024/07/27)

Main metrics

Overview
Name With Ownerrr-debugger/rr
Primary LanguageC++
Program languageShell (Language Count: 11)
PlatformDocker, Linux
License:Other
所有者活动
Created At2011-08-25 18:59:32
Pushed At2025-04-15 06:02:16
Last Commit At2025-04-14 23:01:48
Release Count41
Last Release Name5.9.0 (Posted on )
First Release Name0.0prerelease.0 (Posted on )
用户参与
Stargazers Count9.7k
Watchers Count158
Fork Count610
Commits Count7.1k
Has Issues Enabled
Issues Count2080
Issue Open Count450
Pull Requests Count1577
Pull Requests Open Count15
Pull Requests Close Count266
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private

Overview

Build and test status

rr is a lightweight tool for recording, replaying and debugging execution of applications (trees of processes and threads).
Debugging extends gdb with very efficient reverse-execution, which in combination with standard gdb/x86 features like hardware data watchpoints, makes debugging much more fun. More information about the project, including instructions on how to install, run, and build rr, is at https://rr-project.org. The best technical overview is currently the paper Engineering Record And Replay For Deployability: Extended Technical Report.

Or go directly to the installation and building instructions.

Please contribute! Make sure to review the pull request checklist before submitting a pull request.

If you find rr useful, please add a testimonial.

rr development is sponsored by Pernosco and was originated by Mozilla.

System requirements

  • Linux kernel >= 4.7 (for support of __WALL in waitid())
    • rr 5.6.0 worked with kernel 3.11 (requiring PTRACE_SETSIGMASK)
  • rr currently requires either:
  • Running in a VM guest is supported, as long as the VM supports virtualization of hardware performance counters. (VMware and KVM are known to work; Xen does not.)