Tracers for debugging and program exploration

Fuente: arXiv
Salvato in:
Dettagli Bibliografici
Autori principali: Chiplunkar, Shardul, Pit-Claudel, Clément
Natura: Preprint
Pubblicazione: 2026
Soggetti:
Accesso online:
Tags: Aggiungi Tag
Nessun Tag, puoi essere il primo ad aggiungerne!!
_version_ 1866910124473319424
author Chiplunkar, Shardul
Pit-Claudel, Clément
author_facet Chiplunkar, Shardul
Pit-Claudel, Clément
contents Programmers often use an iterative process of hypothesis generation ("perhaps this function is called twice?") and hypothesis testing ("let's count how many times this breakpoint fires") to understand the behavior of unfamiliar or malfunctioning software. Existing debugging tools are much better suited to testing hypotheses than to generating them. Step debuggers, for example, present isolated snapshots of the program's state, leaving it to the programmer to mentally reconstruct the evolution of that state over time. We advocate for a different approach: building a debugging and program-exploration tool around a *trace*, or complete history, of the program's execution. Our key claim is that the user should see every line *as executed* (in time order) rather than *as written* (in syntax order). We discuss design choices, preliminary results, and interesting challenges.
format Preprint
id arxiv_https___arxiv_org_abs_2604_09301
institution arXiv
publishDate 2026
record_format arxiv
spellingShingle Tracers for debugging and program exploration
Chiplunkar, Shardul
Pit-Claudel, Clément
Programming Languages
Human-Computer Interaction
Programmers often use an iterative process of hypothesis generation ("perhaps this function is called twice?") and hypothesis testing ("let's count how many times this breakpoint fires") to understand the behavior of unfamiliar or malfunctioning software. Existing debugging tools are much better suited to testing hypotheses than to generating them. Step debuggers, for example, present isolated snapshots of the program's state, leaving it to the programmer to mentally reconstruct the evolution of that state over time. We advocate for a different approach: building a debugging and program-exploration tool around a *trace*, or complete history, of the program's execution. Our key claim is that the user should see every line *as executed* (in time order) rather than *as written* (in syntax order). We discuss design choices, preliminary results, and interesting challenges.
title Tracers for debugging and program exploration
topic Programming Languages
Human-Computer Interaction
url https://arxiv.org/abs/2604.09301