Back To Schedule

How do Time Travel Debuggers Work?

Design and implementation of a time travel debugger

11:00 - 12:30 Thursday 2nd May 2024 MT Bethe Hall
Intermediate
Advanced
Tooling/Utilities

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. And all with surprisingly low runtime and memory overheads. This is especially relevant for C++ which, by design, allows for many kinds of bugs that are impossible in other, safer languages.

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. All three have some common traits and important differences. We examine the low-level interactions with the CPU, the Operating System and the language.

View Slides

Greg Law

CEOUndo.io

Greg is the co-founder and CEO of Undo.io. He is a coder at heart, but likes to bridge the gap between the business and software worlds.

Greg's experience includes creating and working on Operating Systems, Networking Stacks and Developer Tools. He has held development and management roles at companies including the pioneering British computer firm Acorn, as well as fast-growing start ups, NexWave and Solarflare. It was at Acorn that Greg met Julian and on evenings and weekends, they invented the core technology that would eventually become Undo.

Greg holds a PhD from City University, London and was nominated for the 2001 British Computer Society Distinguished Dissertation Award. He lives in Cambridge, UK with his wife and two children and in his spare time, catches up on email.