Anteater: Interactive Visualization of Program Execution Values in Context
Rebecca Faust, Katherine Isaacs, William Z. Bernstein, Michael Sharp, Carlos Scheidegger
TL;DR
This paper presents Anteater, a visualization-first debugger that automatically instruments Python programs to produce execution traces enriched with user-specified variable values. By organizing traces into a generalized context tree and related value plots, Anteater enables global overviews and interactive exploration that expose execution structure, value trends, dependencies, and relationships beyond traditional line-by-line debuggers. The approach leverages a tracing pipeline (AST-based instrumentation) and a data backend (JSON-to-SQL, Vega-Lite visualization) to support flexible visualizations and interactions, including selection, filtering, faceting, and linking to source code. Preliminary user studies and a comparative IDE evaluation indicate that Anteater supports discovery of bugs and deeper program understanding, though the work notes limitations in trace size, single-threaded focus, and the need for future integration with IDEs and broader scalability. Overall, Anteater demonstrates the potential of visualization-centric debugging to provide richer, global insights into program execution and value behavior, with practical implications for debugging workflows and education.
Abstract
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, Anteater's organization 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.
