4 ms·
"Time travel debugging" seems to be taking off as the term - "reverse debugger" was around for a long time but doesn't seem to have taken root. It has fixed th
by mark_undoio 4y ago
"Time travel debugging" seems to be taking off as the term - "reverse debugger" was around for a long time but doesn't seem to have taken root. It has fixed the conversation of "We make a reversible debugger", "Ah so you put the bugs in", though!
> rr is amazing but it doesn't work well in cloud environments where it needs you to configure settings in the virtual machine (which you can't). So this limits it to desktop Linux machines.
Hopefully we'll see cloud environments find a way to expose more of the hardware performance counter stuff by default. The alternative is to use an instrumentation-based system that doesn't need access to performance counters. That said, as with machine-level virtualisation, it'd be nice to see the CPU vendors provide more explicit hardware support over time to make implementation easier / higher performance than current approaches.
> Valuable, but not as valuable as some other options. Plus, using GDB is. Ugh.
Looks like there's some support / guidance for using an IDE interface to rr's GDB - https://github.com/rr-debugger/rr/wiki/Using-rr-in-an-IDE https://github.com/rr-debugger/rr/wiki/Using-rr-in-an-IDE
There's also Pernosco https://pernos.co/ https://pernos.co/ which is a cloud service (hosted versions possible) from the original developers of rr. It post-processes uploaded rr traces into a database. This post-processing is compute-intensive but happens on their beefy worker machines. Once it's done, they can retrieve program state across time almost instantly - their website is worth checking out for some examples.
At Undo (disclaimer: where I work) we've got a VS Code plugin that's being very actively developed https://marketplace.visualstudio.com/items?itemName=Undo.udb https://marketplace.visualstudio.com/items?itemName=Undo.udb to make it easier to expose the time travel stuff in our LiveRecorder product.
> Replay is pretty impressive, but front-end issues don't have as much state as other issues and are typically easier to track. It isn't great with long recordings so you can't just "leave it running".
Are you referring to replay.io here? (I was not sure whether you were talking about a replay behaviour in Jive - this is the risk of company / product names that are verbs, a problem we also have!)
I've not used their stuff but the debug interface they provide looks really intuitive. They support recording Node so I presume they can do some backend stuff too? (Assuming it's in JS).
Looks like they want to apply their techniques to other languages eventually.
- invalidname 4y agoI looked at Pernosco but it's obviously not as useful without the recording. Both Undo and Pernosco aren't useful on a Mac. Yes I was talking about replay.io. I agree that these tools have huge potential. I think they have a chance to make a breakthrough. But to cross that chasm into mass market we need something that's easier to use. I had hopes for video bug too. The interface seems promising initially but the developer experience is just awful. I agree that instrumentation is probably the way to go. Especially for VM code.
- mark_undoio 4y agoFWIW, Undo works fine in Mac Docker - but that's only useful if you're actually targeting Linux. I presume rr could work there as well, though I've not tried it to see if the performance counters are accessible. Videobug I had not heard of. Where's the developer experience lacking? I've just had a peek at their video but honestly have little experience of what a Java experience should look like!
- invalidname 4y agoI'm guessing you're on an Intel Mac. I'm on M1. The interface in the plugin of video bug looks like it was designed by a blind person. It's pretty problematic. The steps to follow aren't clear and had I not known how to install an agent I would have been bewildered. I can't imagine someone without deep experience in this field using a tool like that.
- greg_law 4y agoWe have a beta for ARM support which works in docker on M1 mac. Email info@undo.io if interested.