Space-Time Views For Back-In-Time Debugging

Space-Time Views For Back-In-Time Debugging
Related tools & artifacts:
Technical Report: University of Lugano, May, 2015

Omniscient debuggers promise to greatly simplify debugging. They allow developers to explore the entire execution history of a program run, navigating back in time from a failure to its root cause. While many omniscient debuggers provide features to move forward and backward in an execution, they usually only visualize one single (current) program state at any given time. We believe that omniscient debuggers should use visualizations that explicitly represent time, allowing developers to see and compare multiple program states, and to visually follow the flow of information throughout a program execution. In this paper we study the most obvious such visualization, which we call ``space-time view''. Space-time views are tables where columns represent space---the various memory locations of the program---and rows represent time---the various operations performed throughout the execution. Our goal is not to present a particular implementation of space-time views, but to provide the foundations for many different such visualizations. The key problem with space-time views is their extreme size for realistic executions. Any useful space-time view has to deal with this size. Based on a set of realistic execution histories, we automatically generate space-time views, and we study their size and their internal structure. Our observational study helps visualization developers to understand the most important scaling problems with space-time views, and to develop effective visualization techniques that are meaningful in practice.

@techreport{15spacetime, author = {Mohammad R. Azadmanesh and Matthias Hauswirth}, title = {Space-Time Views For Back-In-Time Debugging}, institution = {University of Lugano}, number = {2015/02}, year = 2015, month = may }