Deterministic Debugging
rr provides deterministic debugging by recording program execution, allowing developers to reproduce bugs reliably across different runs. This helps in diagnosing elusive, non-deterministic bugs.
Time-travel Debugging
It allows time-travel debugging, enabling developers to step backward in time during a debug session. This feature makes it easier to trace how an issue occurred.
Performance
While rr induces some overhead during recording, it is generally more efficient compared to other similar tools, making it viable for use on larger applications.
Integration with GDB
rr integrates seamlessly with GDB, providing familiar debugging commands and environment to developers who are already accustomed to using GDB.
Open Source
Being an open-source project allows for community contributions and transparency, and it is freely available, fostering a wide user and support community.
We have collected here some useful links to help you find out if rr is good.
Check the traffic stats of rr on SimilarWeb. The key metrics to look for are: monthly visits, average visit duration, pages per visit, and traffic by country. Moreoever, check the traffic sources. For example "Direct" traffic is a good sign.
Check the "Domain Rating" of rr on Ahrefs. The domain rating is a measure of the strength of a website's backlink profile on a scale from 0 to 100. It shows the strength of rr's backlink profile compared to the other websites. In most cases a domain rating of 60+ is considered good and 70+ is considered very good.
Check the "Domain Authority" of rr on MOZ. A website's domain authority (DA) is a search engine ranking score that predicts how well a website will rank on search engine result pages (SERPs). It is based on a 100-point logarithmic scale, with higher scores corresponding to a greater likelihood of ranking. This is another useful metric to check if a website is good.
The latest comments about rr on Reddit. This can help you find out how popualr the product is and what people think about it.
Agreed. While not directly applicable, I was a huge fan of Mozilla's rr [0] in undergrad. Quoting their site: > rr records a group of Linux user-space processes and captures all inputs to those processes from the kernel, plus any nondeterministic CPU effects performed by those processes (of which there are very few). I think the solution will resemble that. You don't control the LLM, sure. But you can control what... - Source: Hacker News / 27 days ago
Rr (https://rr-project.org/) and memory watchpoints are a godsend when it comes to analysing heap corruptions. - Source: Hacker News / 9 months ago
Since you're already a GDB user, rr will probably feel comfortably familiar. https://rr-project.org/ already has enough example usage to get you going on the home page right there. - Source: Hacker News / 11 months ago
Something I haven't seen discussed here that is another type of debugging that can be very useful is historical / offline debugging. Kind of a hybrid of logging and standard debugging. "everything" is logged and you can go spelunk. For example: https://rr-project.org/. - Source: Hacker News / 11 months ago
Https://rr-project.org/ is a great Time-Travel debugger and has the capability to record and replay the execution of the CPython interpreter, but since it depends on GDB (which just knows how to inspect compiled programs) it struggles to present the state of the Python program running inside of the interpreter. I've found that the best way to inspect Python programs with GDB is to use the GDB extensions... - Source: Hacker News / about 1 year ago
Process recording by time travel debug seems like a good fit for this problem - then you can capture 100% of process execution and then go back and investigate further. We (Undo.io) came up with a technique for following a tree of processes and initiating process recording based on a glob of program name. It's the `--record-on` flag in https://docs.undo.io/UsingTheLiveRecorderTool.html. You can grab a free trial... - Source: Hacker News / about 1 year ago
Https://rr-project.org/ for languages that can be debugged by gdb. - Source: Hacker News / about 1 year ago
I've never used it but sounds like https://rr-project.org/. - Source: Hacker News / about 1 year ago
I frequently try to mention how Java with JRebel is the closest to the Lisp experience I've found with non-Lisp, it's more dynamic feeling than so-called dynamic languages. Having something like the condition system being ubiquitous would be golden. (I'm aware there is a Java port though I never got around to playing with it and it doesn't solve the problem of other people's code not using it..) My last big job... - Source: Hacker News / over 1 year ago
We are currently working on two "backends" where recording works in different ways. For the scripting languages and smart contract/ZK languages, we instrument the interpreters using high level hooking API-s or direct patches, and we produce a trace. For system languages, we directly build on top of RR[1] recordings for now: RR can record multiple processes, and it works in userland. IIRC it doesn't support... - Source: Hacker News / over 1 year ago
We are also planning to develop a distributed tracing platform, similar to Jaeger and OpenTelemetry, that continuously records the execution of many distributed processes (e.g. micro-services). Unlike the existing platforms, which capture only message flows and require you to make educated guesses when some anomaly is observed, our system will let you accurately replay the processing code for each message to... - Source: Hacker News / over 1 year ago
Https://learn.microsoft.com/en-us/windows-hardware/drivers/debuggercmds/time-travel-debugging-overview Or on Linux use rr (https://rr-project.org/) or Undo (https://undo.io - disclaimer: I work on this). These have the advantage that you only need to repro the bug once (just record it in a loop until the bug happens) then debug at your leisure. So even rare bugs are susceptible. Rr and Undo also both have... - Source: Hacker News / over 1 year ago
Agree, there are some time travel debuggers though but either only for some programming languages or expensive commercial or only for linux e.g. rr-debugger[0]. Also there is rerun [1] that is only for image processing pipeline debugging. I wish there was something similar like rerun but for code: you record the whole program running and capture all snapshots then stop it running. Now you can analyze all app... - Source: Hacker News / over 1 year ago
> IntelliTrace is one that comes to mind - thereโs nothing remotely close to itโs snapshot debugging that Iโve seen anywhere else, and Iโve really looked. https://rr-project.org/. - Source: Hacker News / almost 2 years ago
Hi, in case you're not already aware of the name clash, there's already a `rr` in the programming world. It's "record and replay": https://rr-project.org/. Very different, but a very fine tool tool. - Source: Hacker News / almost 2 years ago
I don't know, however a key element is: > Record/replay system is based on saving and replaying non-deterministic events > The following non-deterministic data from peripheral devices is saved into the log: mouse and keyboard input, network packets, audio controller input, serial port input, and hardware clocks (they are non-deterministic too, because their values are taken from the host machine). Inputs from... - Source: Hacker News / almost 2 years ago
Rr. Rr rr rr rr. rr! When testing "algorithmic" modules like compilers, it's basically a productivity cheat code to run the tests under https://rr-project.org/. Doing so allows you to deterministically replay execution, seeking forwards and backwards in the timeline of your program's execution, and quickly locate what went wrong in any computation. For example, if we have- Source: Hacker News / almost 2 years agostruct...
It says on https://rr-project.org/ that it supports Go programm, what's the status? - Source: Hacker News / about 2 years ago
This was because no matter how hard I tried, I kept running into variables that I was watching that appeared to be the same reference, have different values (so I know I was referring to something wrong, but could not for the life of me figure it out, and though if I only had a way to step/trace and do this visually like an AST that highlights changed values and you could see back to its root where it's actually... - Source: Hacker News / about 2 years ago
I think this tool must share a lot techniques and use cases with rr. I wonder how it compares in various aspects. https://rr-project.org/ rr "sells" as a "reversible debugger", but it obviously needs the determinism for its record and replay to work, and AFAIK it employs similar techniques regarding system call interception and serializing on a single CPU. The reversible debugger aspect is built on periodic... - Source: Hacker News / over 2 years ago
Https://rr-project.org/ had the same problem. They use the retired conditional branch counter instead of instruction counter, and then instruction steeping until at the correct address. - Source: Hacker News / over 2 years ago
Do you know an article comparing rr to other products?
Suggest a link to a post with product alternatives.
Is rr good? This is an informative page that will help you find out. Moreover, you can review and discuss rr here. The primary details have not been verified within the last quarter, and they might be outdated. If you think we are missing something, please use the means on this page to comment or suggest changes. All reviews and comments are highly encouranged and appreciated as they help everyone in the community to make an informed choice. Please always be kind and objective when evaluating a product and sharing your opinion.