使用 rr 进行debug

使用 rr 进行debug,第1张

使用 rr 进行debug

使用 rr 进行debug
  • 简介
    • 关键词
  • 安装
    • 编译源文件方法
    • Fedora:
    • ubuntu
    • arch
  • 使用
    • 开始
    • 回放刚才的运行过程
    • 反向debug
    • 记录观察点

简介 关键词
  • 保留某一次的运行错误
  • 对错误可以反复执行
  • 可以反向执行(这个猛)
  • *** 作和gdb没啥区别

rr aspires to be your primary C/C++ debugging tool for Linux, replacing — well, enhancing — gdb. You record a failure once, then debug the recording, deterministically, as many times as you want. The same execution is replayed every time.
rr also provides efficient reverse execution under gdb. Set breakpoints and data watchpoints and quickly reverse-execute to where they were hit.
rr works on real applications and is used by many developers to fix real bugs. It makes debugging hard bugs much easier, but also speeds up debugging of easy bugs.

rr 渴望成为 Linux 的主要 C/C++ 调试工具,取代——嗯,增强——gdb。您记录一次失败,然后确定性地根据需要多次调试记录。每次都重播相同的执行。
rr 还提供了 gdb 下的高效反向执行。设置断点和数据观察点并快速反向执行到它们被击中的地方。
rr 适用于实际应用程序,许多开发人员使用它来修复实际错误。它使调试困难的错误变得更加容易,但也加快了对简单错误的调试。

翻译自官网

安装

不同系统有不同安装方式,参见:

编译源文件方法

github指南

Fedora:
cd /tmp
wget https://github.com/rr-debugger/rr/releases/download/5.5.0/rr-5.5.0-Linux-$(uname -m).rpm
sudo dnf install rr-5.5.0-Linux-$(uname -m).rpm
ubuntu
cd /tmp
wget https://github.com/rr-debugger/rr/releases/download/5.5.0/rr-5.5.0-Linux-$(uname -m).deb
sudo dpkg -i rr-5.5.0-Linux-$(uname -m).deb
arch

yay 搜索一下安装即可,这个最简单。

使用 开始

对于某个程序,只需要输入

rr record /your/application --args

对于rosrun这种运行方式,可以通过

rosrun --prefix 'rr record' your/node

来进行。

回放刚才的运行过程
rr replay

进入回放。replay后的调试 *** 作和debug一样。

反向debug

设置断点后,运行到断点后的某处,使用rc,即reverse continue,即可反向运行到之前的断点处。
‘rn’ 即reverse next, 即可逆向gdb的next进行反向回退。

记录观察点

watch -l 变量
可以实时观察这一变量是否发生变化,有变化立刻停止,十分便于观察各种隐含错误。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5504210.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存