posted on 2008-01-01, 00:00authored byAndrew J. Ko, Brad A. Myers
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.