Debugging reinvented: asking and answering why and why not questions about program behavior
Abstract
When software developers want to understand the reason for a program's behavior, they must translate their questions about the behavior into a series of questions about code, speculating about the causes in the process. The Whyline is a new kind of debugging tool that avoids such speculation by instead enabling developers to select a question about program output from a set of why did and why didn't questions derived from the program's code and execution. The tool then finds one or more possible explanations for the output in question, using a combination of static and dynamic slicing, precise call graphs, and new algorithms for determining potential sources of values and explanations for why a line of code was not reached. Evaluations of the tool on one task showed that novice programmers with the Whyline were twice as fast as expert programmers without it. The tool has the potential to simplify debugging in many software development contexts.
Integrity signals
Registry
Cites
Statistics
Claims the paper makes
Claims other papers make about this one
Each is checked against this paper’s own text: does it say what the citing paper says it does?
Whyline builds a path just-in-time to bridge the gap between two topologies: from GUI output to its relevant source code, and SketchLink links sketches to code.
“Whyline [20] builds a path just-in-time to bridge the gap between two topologies: from GUI output to its relevant source code, and SketchLink [3] links sketches to code.”
From Foraging and navigations, fundamentally: developers' predictions of value and cost (2016) · cites this paper as [20]
Whyline does not scale to a program of jEdit's size, approaches like Chen/Grundy's do not support navigations per se, and few of the approaches located handle more than two disjoint topologies.
“However, Whyline does not scale to a program of jEdit's size, approaches like Chen/Grundy's do not support navigations per se, and few of the approaches we have located handle more than two disjoint topologies.”
From Foraging and navigations, fundamentally: developers' predictions of value and cost (2016) · cites this paper as [20]
The citation lists haven’t been fetched yet
References 20 · Cited by 296
- Authors
- Ko, A. J., & Myers, B. A.
- Affiliations
- Carnegie Mellon University, Pittsburgh, PA, USA
- Carnegie Mellon University (US)
- ORCID
- Myers, Brad A.
- Venue
- Proceedings of the 30th international conference on Software engineering
- Publisher
- ACM
- Published
- 2008-05-10
- Pages
- 301-310
- ISSN
- 0270-5257 (ISSN-L)
- OpenAlex
- W2164372721
- Cited by
- 296
- References
- 20
- Citations by year
- 2026: 6 · 2025: 6 · 2024: 15 · 2023: 15 · 2022: 15 · 2021: 12 · 2020: 12 · 2019: 16 · 2018: 16 · 2017: 15 · 2016: 10 · 2015: 11 · 2014: 27 · 2013: 25 · 2012: 16
- FWCI
- 15.73
- Type
- conference paper
- Language
- en
- Open access
- closed
- Locations
- ACM/IEEE International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) (publishedVersion)
- Funders
- National Science Foundation
- National Defense Science and Engineering Graduate
- Topics
- Physical Sciences › Computer Science › Software › Software Testing and Debugging Techniques
- Physical Sciences › Computer Science › Information Systems › Software Engineering Research
- Physical Sciences › Computer Science › Information Systems › Software Engineering Techniques and Practices
- Keywords
- debugging tools, program explanation, static slicing, dynamic slicing, call graph, novice programmers, program comprehension
About these checks
Registry, retraction, Cites and statistics results are computed, not judged, with one exception: a printed reference that no index lists is read once by a model before it counts as a citation error. Claims are extracted by a model and kept only when their quote appears verbatim in the text; each cited source is then checked, with a model’s help, for whether it says what the claim relies on. Those verdicts can be wrong — read the claim’s quote and the cited source before relying on one.
Statistics and arithmetic are recomputed, not judged.
Confidence bands are shown only for fields calibrated on our annotated test set. None is calibrated yet, so no band is shown.
What counts as a claim ›How we measure confidence ›How we check this ›
Are you an author, or do you see a problem with this page? Request a review