Techniques for Visualizing Software Execution

Justin Seyster · 2008

Instrumenting or profiling a program’s execution yields enormous amounts of data that the programmer can use to diagnose bugs and performance problems or even explore how a program works. However, the raw data is often too vast for any programmer to analyze unaided. The goal of execution visualization is to present that data visually in a way that allows the viewer to better understand a program’s behavior and to draw conclusions about that behavior. This paper surveys tools that visualize program executions by graphing data from execution traces, showing the steps of the program’s execution, or displaying the contents of runtime data structures. We evaluate the techniques these tools use based on how much data they show with static displays, animations, and interactive queries and how clearly that data communicates information the user is looking for. We also examine the availability of these techniques in production software visualization packages. As part of our survey, we present our own system that visualizes output from the Memcov memory profiler to aid in identifying sources of leaky or wasteful memory allocations. Finally, we explore the types of data generated by program executions and discuss displays that are effective

Read the paper · More papers on PaperTik