Resources
How do Time Travel Debuggers Work? – Design and Implementation of a Time Travel Debugger
Time-Travel Debuggers are powerful tools for debugging complex C++ code. They present the programmer with an infinitely detailed view of program execution: the programmer can inspect any piece of program state (memory or registers) for any line of code that executed.
But how do these seemingly-magically tools really work? This talk dives deep into the implementation details of the three highest profile time travel debuggers: rr, Microsoft’s TTD, and Undo.io.