Understanding and debugging long, complex programs can be extremely difficult; it often includes significant, manual program instrumentation and searches through source files . In this paper, we present Anteater, an interactive visualization system for tracing and exploring the execution of a program. While existing debugging tools often have visualization components , these components are often added on top of an existing environment. In Anteater, in contrast, visualization is a driving concern. We answer the following question: what should a debugging tool look like if it were designed from the ground up to support interactive visualization principles? Anteater automatically instruments source code to capture execution behavior along with variables and expressions specified by the user. After generating the execution trace, Anteater presents the execution information through interactive visualizations . Anteater supports interactions that help with tasks such as discovering important structures in the execution , learning dependencies, and understanding and debugging unexpected behaviors. To assess the utility of Anteater, we present several real-world case studies that show how Anteatercompares favorably to existing approaches . Finally, we discuss limitations of our system and where further research is needed.
Debugging is famously one the hardest parts in programming . In this paper, we tackle the question: what does a debugging environment look like when we take interactive visualization as a central design principle? We introduce Anteater, an interactive visualization system for tracing and exploring the execution of Python programs. Existing systems often have visualization components built on top of an existing infrastructure. In contrast, URLanization of trace data enables an intermediate representation which can be leveraged to automatically synthesize a variety of visualizations and interactions. These interactive visualizations help with tasks such as discovering important structures in the execution and understanding and debugging unexpected behaviors. To assess the utility of Anteater, we conducted a participant study where programmers completed tasks on their own python programs using Anteater . Finally, we discuss limitations and where further research is needed.
R
Understanding and debugging long, complex programs can be extremely difficult; it often includes significant, manual program instrumentation and searches through source files
Debugging is famously one the hardest parts in programming
R
present
tackle the question: what does a debugging environment look like when we take interactive visualization as a central design principle? We introduce
R
a program. While existing debugging tools
Python programs. Existing systems
R
, these components are often added
built
R
environment. In Anteater, in contrast, visualization is a driving concern. We answer the following question: what should a debugging tool look like if it were designed from the ground up to support interactive visualization principles? Anteater automatically instruments source code to capture execution behavior along with variables and expressions specified by the user. After generating the execution trace, Anteater presents the execution information through interactive visualizations . Anteater supports interactions that
infrastructure. In contrast, URLanization of trace data enables an intermediate representation which can be leveraged to automatically synthesize a variety of visualizations and interactions. These interactive visualizations
D
, learning dependencies,
R
present several real-world case studies that show how Anteatercompares favorably to existing approaches
conducted a participant study where programmers completed tasks on their own python programs using Anteater
D
of our system