Program: Sunday, Monday

September 7, Sunday
September 8, Monday

Visualizing Program State in the Pernosco Debugger, Robert O’Callahan

Abstract. "Omniscient" debuggers have efficient and complete access to all program states that occurred during some run(s) of the program. The question then is, what is the best way to visualize this data to enable users to debug their programs in the most effective, time-efficient and fun manner?
The "Pernosco" debugger is one attempt to answer this question.
I will describe the principles we used when designing the Pernosco interface, some of the novel visualizations of dynamic state supported by Pernosco, and what we learned as we built it and deployed it to customers. In particular I will focus on the value of visualizing state across time as opposed to traditional debuggers that mostly only render the state at a given point in time. I will try to distinguish visualizations that are useful from those that are merely visually appealing. A critical aspect of debugging is mapping machine state back to "source level" state, typically via "debuginfo" emitted by the compiler. I'll talk about how Pernosco visualizes the relationship of state to source code, and how that could be extended in the future if we had a deeper understanding of the source code.

Bio. Robert O'Callahan did academic research (PhD Carnegie Mellon, IBM Research) for several years and then joined Mozilla to work on the Firefox browser engine for many more years, becoming a Distinguished Engineer at Mozilla. While at Mozilla he led the rr project to develop a practical, open-source record-and-replay debugger; rr has many users and he continues to maintain it today. In 2016 he left Mozilla to found Pernosco, a commercial omniscient debugger built on rr. In 2022 he joined Google Research to work on various projects mostly unrelated to debugging. He lives in New Zealand and enjoys hiking, board games and lay preaching.