SESSION + Live Q&A

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

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...

Read more

Location

Henry Moore, 4th flr.

Track

Modern CS in the Real World

Topics

Debugging

Share

From the same track

SESSION + Live Q&A Database Design

Infinite Parallel Universes: State at the Edge

Databases and other systems of state often rely on abstractions that break down at large physical scale. In this talk I'll describe the problems with some of these traditional assumptions, and suggest better approaches for effectively managing data in geographically large networks. With...

Peter Bourgon

Principal Engineer @fastly

SESSION + Live Q&A Serverless

Cloudstate—Towards Stateful Serverless

Serverless experience is revolutionary and will grow to dominate the future of Cloud. Function-as-a-Service (FaaS) however—with its ephemeral, stateless, and short-lived functions—is only the first step. FaaS is great for processing-intensive, parallelizable workloads, moving data...

Sean Walsh

Field CTO @Lightbend

SESSION + Live Q&A Apache Kafka

Kafka: a Modern Distributed System

You may have heard that Apache Kafka plays a central role in modern event-driven architectures. It lies at the heart of successful microservices implementations -- its loyal following is well versed in Kafka's key APIs: the Producer and Consumer, Kafka Streams, and maybe even KSQL. But have...

Tim Berglund

Senior Director of Developer Experience @Confluent

SESSION + Live Q&A Silicon Valley

Applying AI/ML for Trusted Commerce Connections @Facebook Marketplace

Facebook Marketplace is aimed at making buying and selling seamless for people locally within their communities and open up economic opportunity through social commerce. Given that Trust is a key driver of consumer decisions in Commerce, it is important for Facebook to build trust amongst buyers...

Liza Fireman

Engineering Manager @Facebook Marketplace Trust & Safety

SESSION + Live Q&A Interview Available

Coccinelle: 10 Years of Automated Evolution in the Linux Kernel

Over the last 10+ years, we have been developing the Coccinelle C-program matching and transformation tool. Coccinelle allows developers to match and transform C code via a generalization of the familiar patch syntax. As Coccinelle is independent of the C preprocessor, Coccinelle rules can be...

Julia Lawall

Senior Researcher @Inria

View full Schedule