Hacker News new | ask | show | jobs
by kjar 2528 days ago
Not quite the same, but reminded me of reversible debugging: https://www.gnu.org/software/gdb/news/reversible.html
1 comments

Mozilla's rr is made for exactly that.
WinDBG's Time-Travel Debugging is another nice implementation of this.
Heh, it feels like everybody and their dog has written a reversible debugger.

Listed in this Hacker News thread we have 7 implementations in gdb, plus rr and WinDBG.

I'll add one more, an in-house hypervisor that I help develop. Stuff like finding "all concurrency bugs" as in this article would be a matter of scripting it up. BTW, we're hiring: https://news.ycombinator.com/item?id=19797601

So that's at least 10, counting the gdb backends distinctly except lumping the Linux native x86 and x86_64 together.

Of the 7 implementations listed in the gdb page: * gdb's "Native" implementation is unusably slow. 1000x slowdown during recording. * Simics is expensive and AFAIK a full-system simulator not very useful for debugging applications. * Moxie-ELF is for an obscure custom CPU. SID looks similar. * VMWare have discontinued support for reverse execution. * Chronicle-gdbserver is unusably slow, 300x recording overhead. * UndoDB is the only one that's really usable.

We actually have another gdb remote backend supporting reverse execution that's in active use but not publicly available yet --- Pernosco.

A properly-equipped full-system simulator is useful for debugging applications. I have one. It is decently fast too. It's free or very expensive, depending on how you count several in-house developers to maintain it.