You are viewing content from a past/completed QCon

Presentation: Record, Replay, Rinse, & Repeat: Easily Rebuilding Programmatic State

Track: Modern CS in the Real World

Location: Henry Moore, 4th flr.

Duration: 1:40pm - 2:30pm

Day of week: Monday

Slides: Download Slides

Share this on:

This presentation is now available to view on InfoQ.com

Watch video with transcript

Abstract

Join this talk to learn about the various implementations of record and replay systems that can be used to debug software applications. The talk begins with a discussion of the current state of the art, from both academia and the real world. We then provide an overview of the pros and cons, mostly along the axis of ease of implementation versus the capabilities of the implementation. Finally, we will compare the open-source vs proprietary models for the productising of such research systems.

The problem of understanding the reasons why a computer program has behaved in an unexpected way has troubled programmers for as long as programmable computers have existed. Due to society’s increasing dependency on computers and the rise in complexity of modern software architectures, the problem grows ever more important and ever more difficult to solve. Fortunately, today’s hardware and software systems make it feasible to provide a complete recording of a program’s execution.

In the 1970s, the idea of reversible debugging as a potential solution to this problem was first discussed in academic papers, and a naive implementation of reversible debugging was added to the GNU “GDB” interactive debugger in 2009. These systems allow developers to debug a ‘recording’ (also known as a ‘trace’) of a program’s execution, stepping forwards and backwards. Full realisation of this allows developers to rewind to any instruction in the program’s history, and examine any variable’s value (ie. any register value and any memory location) for any instruction that executed.

Until recently, the high overheads and/or incompleteness of these systems meant they were impractical for recording anything but the simplest of “Hello world” type programs. A new breed, including Undo’s LiveRecorder, the open-source rr project, and Microsoft’s Time Travel Debugger, take advantage of advances in compute, network bandwidth, and storage costs, and make it practical for use on large, complex applications.

Speaker: Greg Law

Co-founder & CTO @undo_io

Greg is co-founder and CTO at Undo. He likes writing system software to make computers do things that are supposed not to be able to do.
 
 

Greg has 20 years’ experience in the software industry and 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 UndoDB. Greg left Solarflare in 2012 to perform a dual CEO/CTO role during the start-up years, transitioning to full-time CTO in 2018.



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. In his spare time Greg catches up on email.

Find Greg Law at

Last Year's Tracks