Hacker News

Top stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. OpenJev(openjev.com ↗)
    33comments
  2. Jemalloc 5.4.0(github.com/jemalloc ↗)
    47comments
  3. The scourge of x86 emulation(fex-emu.com ↗)
    28comments
  4. Astra for Law(openai.com ↗)
    588comments
  5. Bonsai 2 27B: Near-Lossless Compression in a 9x Smaller Footprint(prismml.com ↗)
    135comments
  6. Bend – A language that blocks AI mistakes via proof, on CPU and GPU(bend-lang.com ↗)
    224comments
  7. Microsoft exec called AI scraping 'the largest theft of labor in human history'(techcrunch.com ↗)
    25comments
  8. Qwen 3.8 Omni Flash(qwen.ai ↗)
    82comments
  9. Replacing Pull Requests with Delta(zed.dev ↗)
    4comments
  10. Hister: A private search engine for the pages you visit and the files you keep(github.com/asciimoo ↗)
    170comments
  11. Wax motor(wikipedia.org ↗)
    71comments
  12. When the fractional part of a float fixes your shader(crocidb.com ↗)
    1comments
  13. Pre-Greek: The lost language hidden within Ancient Greek(linguisticdiscovery.com ↗)
    40comments
  14. Fujitsu launches made-in-Japan next-generation CPU FUJITSU-MONAKA(global.fujitsu ↗)
    234comments
  15. A heap overflow and SSO misconfiguration to compromise OpenAI internal repos(hacktron.ai ↗)
    155comments
  16. Shapelearn Qwen 3.8 27B (13.1 GB VRAM)(byteshape.com ↗)
    11comments
  17. Dr Julius Neubronner's Miniature Pigeon Camera(publicdomainreview.org ↗)
    discuss
  18. How to Write with an LLM(sockpuppet.org ↗)
    106comments
  19. Ask A Monk – A digital wilderness for thoughts with no immediate answer(askamonk.online ↗)
    24comments
  20. Flet 1.0 – Build cross-platform apps in Python(flet.dev ↗)
    59comments
  21. Telstra outage: The night a network decided the year was 2006(netnod.se ↗)
    27comments
  22. Speeding up gearhash on ARM64(sam.dev ↗)
    discuss
  23. Diplodocus, Long Thought Exclusively American, Turns Up in Spain(sci.news ↗)
    44comments
  24. Apple detectives solved mystery of ancient tree and rewrote the history of fruit(scientificamerican.com ↗)
    12comments
  25. How do we prevent mathemathics from devolving into the Medieval Era of secrecy?(mathoverflow.net ↗)
    108comments
  26. Why I didn’t sign the Fields medallists’ letter(gowers.wordpress.com ↗)
    370comments
  27. The most important product decision is what you don't build(liamnugent.me ↗)
    39comments
  28. Why Does the Universe Expand?(cosmicave.org ↗)
    58comments
  29. CrowdSec Source Code Leak(crowdsec.net ↗)
    49comments
  30. How Uber Protects Against Retry Storms(uber.com ↗)
    44comments

Rr 4.0 Debugger Released with Reverse Execution

107 pointsby 11y agorobert.ocallahan.org
11 comments
11y agoHN ↗

How much of rr is C++-specific? I know of a few other compiled languages out there that would love to have a tool like this.

11y agoHN ↗

As I understand it, not much. It seems to work fine with Rust, for instance.

11y agoHN ↗

That's correct. Anything you can debug with gdb should be debuggable under rr. (Though of course there could always be rr bugs that need to be fixed.)

Languages where debugging requires complex VM services are another story. For example, if your language supports debugging by modifying the code generated by a JIT, that's going to be a problem under rr, since an rr replay preserves the exact instructions executed during recording.

11y agoHN ↗

Debugging a non-trivial application with gdb without gdb crashing is quite a feat, however. Hopefully rr is less prone to segfaulting. Gdb is easily the least stable standard debugger I've used on any preemptive scheduling OS.

11y agoHN ↗

gdb almost never crashes for me debugging Firefox on Linux, with or without rr.

11y agoHN ↗

Why such/similar tool with a simple GUI interface isn't default standard, for most popular languages/platforms ?

Wouldn't it tremendously save developers time ?... And, accordingly, huge amounts of money ?

Please! No more sado-masochism!

11y agoHN ↗

Looks like it's because until now it was not available, since rr has gained both reverse execution and x86-64 support quite recently (now and end of 2014 respectively)

There have been other similar tools previously, but they were either slow (chronicle), unable to work on complex programs or only worked on VMs.

11y agoHN ↗

The features and general approach are quite similar.

There are some significant internal differences. UndoDB relies on code instrumentation but rr does not. Mainly because of that (AFAIK), UndoDB's recording overhead is significantly higher than rr's. On the other hand, UndoDB can handle some cases rr does not, in particular when a recorded task shares memory with another task which is not part of the recording. Also, UndoDB supports ARM/Android and rr does not.

11y agoHN ↗

Awesome. I wanted just something like that but never heard it exists. Thanks, HN.

Anyone with experience using rr - does it work for long-running processes (daemons) that eventually crash? I had few cases where it wasn't possible to trigger a failure right away, and waiting another day for the daemon to crash to have a new core dump wasn't any great experience. Is the tool usable for such cases - I mean, without dumping few hundred gigabytes of execution history?

11y agoHN ↗

The recording data rate is highly workload-dependent. For Firefox I find it's often around 1MB per second but your daemon could be a lot more or less than that, depending on what it does.

A few hundred gigabytes may sound like a lot, but it costs less than $100 so if it saves you a significant amount of time, why not? The biggest problem using rr with a very long trace is that to debug it you need to replay all the way forward to the crash point, which might take you another day or longer. Though that's just machine time so you can run that in the background while doing other work.