Information Processing Letters
Debugging and the experience of immediacy
Communications of the ACM
A static analyzer for finding dynamic programming errors
Software—Practice & Experience
Programmers use slices when debugging
Communications of the ACM
A framework for call graph construction algorithms
ACM Transactions on Programming Languages and Systems (TOPLAS)
Isolating cause-effect chains from computer programs
Proceedings of the 10th ACM SIGSOFT symposium on Foundations of software engineering
An end-user tool for e-commerce debugging
Proceedings of the 8th international conference on Intelligent user interfaces
Dynamic Query-Based Debugging of Object-Oriented Programs
Automated Software Engineering
WhyNot: debugging failed queries in large knowledge bases
Eighteenth national conference on Artificial intelligence
Precise Call Graph Construction in the Presence of Function Pointers
SCAM '02 Proceedings of the Second IEEE International Workshop on Source Code Analysis and Manipulation
Designing the whyline: a debugging interface for asking questions about program behavior
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Snapshot Query-Based Debugging
ASWEC '04 Proceedings of the 2004 Australian Software Engineering Conference
Using Compressed Bytecode Traces for Slicing Java Programs
Proceedings of the 26th International Conference on Software Engineering
Six Learning Barriers in End-User Programming Systems
VLHCC '04 Proceedings of the 2004 IEEE Symposium on Visual Languages - Human Centric Computing
A brief survey of program slicing
ACM SIGSOFT Software Engineering Notes
Locating causes of program failures
Proceedings of the 27th international conference on Software engineering
Scalable statistical bug isolation
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Whole execution traces and their applications
ACM Transactions on Architecture and Code Optimization (TACO)
Dynamic Feature Traces: Finding Features in Unfamiliar Code
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
Goal-Directed Debugging of Spreadsheets
VLHCC '05 Proceedings of the 2005 IEEE Symposium on Visual Languages and Human-Centric Computing
Locating faulty code using failure-inducing chops
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Empirical evaluation of the tarantula automatic fault-localization technique
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Answering why and why not questions in user interfaces
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
A Linguistic Analysis of How People Describe Software Problems
VLHCC '06 Proceedings of the Visual Languages and Human-Centric Computing
Improving your software using static analysis to find bugs
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
How it works: a field study of non-technical users interacting with an intelligent system
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
IEEE Transactions on Software Engineering
A Technique for Enabling and Supporting Debugging of Field Failures
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Information Needs in Collocated Software Development Teams
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Towards a Framework for Differential Unit Testing of Object-Oriented Programs
AST '07 Proceedings of the Second International Workshop on Automation of Software Test
Program comprehension as fact finding
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Capturing and answering questions posed to a knowledge-based system
Proceedings of the 4th international conference on Knowledge capture
Debugging reinvented: asking and answering why and why not questions about program behavior
Proceedings of the 30th international conference on Software engineering
Finding causes of program output with the Java Whyline
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Interactive, visual fault localization support for end-user programmers
Journal of Visual Languages and Computing
The cognitive tutor authoring tools (CTAT): preliminary evaluation of efficiency gains
ITS'06 Proceedings of the 8th international conference on Intelligent Tutoring Systems
Dinah: an interface to assist non-programmers with selecting program code causing graphical output
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
A tutoring system for debugging: status report
Journal of Computing Sciences in Colleges
Interactive record/replay for web application debugging
Proceedings of the 26th annual ACM symposium on User interface software and technology
Hi-index | 0.00 |
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 extracted from the program's code and execution. The tool then finds one or more possible explanations for the output in question. These explanations are derived using a static and dynamic slicing, precise call graphs, reachability analyses, and new algorithms for determining potential sources of values. Evaluations of the tool on two debugging tasks showed that developers with the Whyline were three times more successful and twice as fast at debugging, compared to developers with traditional breakpoint debuggers. The tool has the potential to simplify debugging and program understanding in many software development contexts.