rr also reminds me of when, ages ago, I first ran into the ocaml debugger's ability to step forward and step backward. To borrow the modern cliché: mind blown.
GDB's was quite useful, but painfully slow; I had to do a good amount of bisecting down to a small enough input to reproduce the issue without having to wait ages to execute before it was usable. Once I did that, though, it let me find the issue a lot sooner than I would have been able to otherwise.
rr promises to be substantially faster the GDB's record and replay; if so, I imagine it will be quite useful, though it is only once or twice a year that I actually have to debug a problem that these kinds of tools are relevant for.
(It wasn't clear to me until I followed a few links - I hadn't heard of rr.)
The nice thing about rr is that you can still use it with gdb, so you have the full power of gdb along with close to native speed record and reply. Once the x86-64 support is ready, it'll probably be a common tool for me.
> it's the first "research" tool I've ever built that I like to use myself.
Nevertheless, does anyone know if there's something like this for programs compiled to the JVM? I've never used gdb to debug JVM code, but I expect that it will not work well.
A Google search https://www.google.com/search?q=java+backwards+debugger found some more hits.