3 ms·
Do you know of anyone who's built that kind of time travel debugging with a trace visualization in the open outside of Javascript? I know about rr and Pernosco
by trishume 3y ago
Do you know of anyone who's built that kind of time travel debugging with a trace visualization in the open outside of Javascript? I know about rr and Pernosco but don't know of trace visualization integration for either of them, that would indeed be very cool. I definitely dream of having systems like this.
- Veserv 3y agoGreen Hills Software TimeMachine + History for C and C++: https://www.ghs.com/products/MULTI_IDE.html https://www.ghs.com/products/MULTI_IDE.html No particularly good publicly visible documentation of the functionality, but it does that and is a publicly purchasable product. They also had TimeMachine + PathAnalyzer from the early 2000s which was a time travel debug with visualization solution, but they were only about as integrated as most of the solutions you see floating around today.
- deutschepost 3y agoTomorrow Corp does something like this in a variant of c++. But I am not sure it’s very open. https://youtu.be/72y2EC5fkcE https://youtu.be/72y2EC5fkcE
- mark_undoio 3y agoAt undo.io we're interested in using our time travel capability beyond conventional time travel debugging - a recording file contains everything the program did, without any advance knowledge of what you need to sample, so there's a lot of potential to get other data out of it. I just read your post and don't think it would take much to integrate with some of the visualisations you posted about, as a first step. We've played around in the past with a sampling profiler (code here, requires a copy of our product to be useful though it could easily port to rr): https://github.com/undoio/addons/tree/master/sample_functions https://github.com/undoio/addons/tree/master/sample_function... which can output in a format understood by Brendan Gregg's flame frames (https://www.brendangregg.com/flamegraphs.html https://www.brendangregg.com/flamegraphs.html) But that's not quite the kind of tracing you're talking about. We also built a printf-style interface to our recording files, which seems closer: https://docs.undo.io/PostFailureLogging.html https://docs.undo.io/PostFailureLogging.html Something like that but outputting trace events that can be consumed by Perfetto (say) would not be so hard to add. If we considered modifying the core record/replay engine then even more powerful things become possible.
- inetknght 3y agoI've seen undo.io several times at cppcon. I've been throughly impressed with the demonstrations at the conference and came to this thread specifically to recommend undo.io. I was particularly impressed this year by a demonstration of debugging stack smashing -- that's something I recently worked around stack smashing in protobuf which happens before `main()` even starts. It seems perfect for undo.io to help debug :) I'm still waiting on the keyserver to be able to run in Kubernetes though
- mark_undoio 3y ago> I was particularly impressed this year by a demonstration of debugging stack smashing I'm glad you liked it - and that's useful feedback for other demos we give! > I'm still waiting on the keyserver to be able to run in Kubernetes though I believe support for that is on the way. If you're already in touch then I imagine you'll get an announcement soon.