Efficiently updating materialized views
SIGMOD '86 Proceedings of the 1986 ACM SIGMOD international conference on Management of data
Exploring Algorithms Using Balsa-II
Computer
Fast breakpoints: design and implementation
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
Visualizing and querying software structures
ICSE '92 Proceedings of the 14th international conference on Software engineering
The formal semantics of programming languages: an introduction
The formal semantics of programming languages: an introduction
Practical data breakpoints: design and implementation
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
Visualizing the behavior of object-oriented systems
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Architecture-oriented visualization
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Communications of the ACM
Advanced Java: idioms, pitfalls, styles and programming tips
Advanced Java: idioms, pitfalls, styles and programming tips
Modeling dynamic collections of interdependent objects using path-based rules
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Query-based debugging of object-oriented programs
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Dynamic class loading in the Java virtual machine
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Visualizing dynamic software system information through high-level models
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Coca: an automated debugger for C
Proceedings of the 21st international conference on Software engineering
Efficiently monitoring relational databases
ACM Transactions on Database Systems (TODS)
Debugging systems at the source language level
Communications of the ACM
Object-Oriented Software Construction
Object-Oriented Software Construction
The Java Language Specification
The Java Language Specification
Interactive Visual Exploration of Distributed Computations
IPPS '97 Proceedings of the 11th International Symposium on Parallel Processing
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
VIZIR: An Integrated Environment for Distributed Program Visualization
MASCOTS '95 Proceedings of the 3rd International Workshop on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems
Load-Time Adaptation: Efficient and Non-Intrusive Language Extension for Virtual Machines
Load-Time Adaptation: Efficient and Non-Intrusive Language Extension for Virtual Machines
Query-based debugging
Strata-various: multi-layer visualization of dynamics in software system behavior
VIS '94 Proceedings of the conference on Visualization '94
Supporting truly object-oriented debugging of C++ programs
CTEC'94 Proceedings of the 6th conference on USENIX Sixth C++ Technical Conference - Volume 6
HotWire: a visual debugger for C++
CTEC'94 Proceedings of the 6th conference on USENIX Sixth C++ Technical Conference - Volume 6
Execution patterns in object-oriented visualization
COOTS'98 Proceedings of the 4th conference on USENIX Conference on Object-Oriented Technologies and Systems - Volume 4
Designing the whyline: a debugging interface for asking questions about program behavior
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
A Dataflow Language for Scriptable Debugging
Proceedings of the 19th IEEE international conference on Automated software engineering
Debugging by asking questions about program output
Proceedings of the 28th international conference on Software engineering
The design and implementation of a dataflow language for scriptable debugging
Automated Software Engineering
Debugging reinvented: asking and answering why and why not questions about program behavior
Proceedings of the 30th international conference on Software engineering
Macrodebugging: global views of distributed program execution
Proceedings of the 7th ACM Conference on Embedded Networked Sensor Systems
Extracting and answering why and why not questions about Java program output
ACM Transactions on Software Engineering and Methodology (TOSEM)
Hi-index | 0.00 |
Program errors are hard to find because of the cause-effect gap between the instant when an error occurs and when the error becomes apparent to the programmer. Although debugging techniques such as conditional and data breakpoints help in finding errors in simple cases, they fail to effectively bridge the cause-effect gap in many situations. This paper proposes two debuggers that provide programmers with an instant error alert by continuously checking inter-object relationships while the debugged program is running. We call such tool a dynamic query-based debugger. To speed up dynamic query evaluation, our debugger implemented in portable Java uses a combination of program instrumentation, load-time code generation, query optimization, and incremental reevaluation. Experiments and a query cost model show that selection queries are efficient in most cases, while more costly join queries are practical when query evaluations are infrequent or query domains are small. To enable query-based debugging in the middle of program execution in a portable way, our debugger performs efficient Java class file instrumentation. We call such debugger an on-the-fly debugger. Though the on-the-fly debugger has a higher overhead than a dynamic query-based debugger, it offers additional interactive power and flexibility while maintaining complete portability.