Deterministic Replay as a Platform for Understanding Dynamic Behaviors in Web Programs

  • Brian Burg | University of Washington

The web is the most successful open application platform, where anyone can inspect a live application to see how it works. Despite readily inspectable source code and runtime state, web applications are still challenging to debug. In particular, dynamic behaviors-user interactions, animations, and asynchronous work-cannot be understood solely by looking at static source code. Several barriers stand in the way of understanding dynamic behaviors: reproducing nondeterministic behavior is often impossible; finding and comparing a behavior’s runtime states is time-consuming; and the code that implements a behavior is scattered across multiple DOM, CSS, and JavaScript files.

In this talk, I will describe how pervasive, transparent, and fast deterministic record/replay enables new tools for understanding dynamic behaviors. First, I will introduce Dolos: a browser-integrated replay infrastructure that can efficiently and precisely capture and reproduce dynamic behaviors on web pages. Then, I will describe several tools built on top of Dolos that support different program understanding tasks. Timelapse is an interface for visualizing and navigating a captured execution via its user inputs and tasks. Probes are a new feature for retroactively logging runtime states and going back in time to statements that produce outputs. Lastly, Scry is a tool that enables a developer to find the code that implements a behavior by working backward from visual output, to CSS and DOM state, and the JavaScript code responsible for each state. I will discuss the challenges involved in designing, building, and evaluating these tools, and future opportunities for developer tools and deterministic replay.

Speaker Details

Brian Burg is a Seattle-based hacker, designer, researcher and doctoral candidate at the University of Washington. He is advised by Amy Ko and Mike Ernst in the Computer Science and Engineering department. Prior to studying at UW, he earned his B.S. in Computer Science at Purdue University and worked in Jan Vitek’s research lab. As an outgrowth of his research, Brian is an active contributor and reviewer in the WebKit open source project. In the past, he has worked on web technologies and tools at Microsoft Research, Mozilla Research, Amazon, and Apple.

    • Portrait of Jeff Running

      Jeff Running

Series: Microsoft Research Talks