Book Chapter10.1007/3-540-48743-3_7
Dynamic Query-Based Debugging
Raimondas Lencevicius,Urs Hölzle,Ambuj K. Singh +2 more
- 14 Jun 1999
- pp 135-160
39
TL;DR: To speed up dynamic query evaluation, this debugger uses a combination of program instrumentation, load-time code generation, query optimization, and incremental reevaluation to 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.
read more
Abstract: Program errors are hard to find because of the cause-effect gap between the time when an error occurs and the time when the error becomes apparent to the programmer. Although debugging techniques such as conditional and data breakpoints help to find error causes in simple cases, they fail to effectively bridge the cause-effect gap in many situations. Dynamic query-based debuggers offer programmers an effective tool that provides instant error alert by continuously checking inter-object relationships while the debugged program is running. 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.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
Practical Object-Oriented Back-in-Time Debugging
Adrian Lienhard,Tudor Gîrba,Oscar Nierstrasz +2 more
- 07 Jul 2008
TL;DR: This paper proposes a practical approach that attempts to keep track of only the relevant data, and keeps object history information together with the regular objects in the application memory so that data not reachable from current application objects is garbage collected.
An information exploration tool for performance analysis of Java programs
Gary Sevitsky,W. de Pauw,Ravi Konuru +2 more
- 12 Mar 2001
TL;DR: This work presents Jinsight EX, a tool for analyzing Java performance, that adopts techniques that have been successfully used to explore large data sets in other application domains, and adapts them specifically to the needs of program execution analysis.
60
Object-oriented legacy system trace-based logic testing
Stéphane Ducasse,Tudor Gîrba,Roel Wuyts +2 more
- 22 Mar 2006
TL;DR: The approach reifies the execution traces and uses logic programming to express tests on them, which eliminates the need to programatically bring the system in a particular state, and handles the test-writer a high-level abstraction mechanism to query the trace.
No Java without caffeine: A tool for dynamic analysis of Java programs
Yann-Gaël Guéhéneuc,R. Douence,Narendra Jussien +2 more
- 23 Sep 2002
TL;DR: Caffeine is a dynamic analysis tool that uses the Java platform debug architecture to generate a trace, and a Prolog engine to perform queries over the trace to help the maintainer in checking her conjecture about the behavior of a Java program.
51
References
•Book
The Java Language Specification
James Gosling,Bill Joy,Guy L. Steele +2 more
- 12 Sep 1996
TL;DR: The Java Language Specification, Second Edition is the definitive technical reference for the Java programming language and provides complete, accurate, and detailed coverage of the syntax and semantics of the Java language.
Program Slicing
TL;DR: Program slicing as mentioned in this paper is a method for automatically decomposing programs by analyzing their data flow and control flow. But it is not a technique for finding statement-minimal slices, as it is in general unsolvable, but using data flow analysis is sufficient to find approximate slices.
3.3K
Program slicing
Keith Gallagher,David Binkley +1 more
- 01 Sep 2008
TL;DR: Applications of program slicing are surveyed, ranging from its first use as a debugging technique to current applications in property verification using finite state models, and a summary of research challenges for the slicing community is discussed.
2.8K
A Survey of Program Slicing Techniques.
Frank Tip
- 31 Jul 1994
TL;DR: An overview of the applications of program slicing, which include debugging, program integration, dataflow testing, and software maintenance is presented, including the various general approaches used to compute slices.
Related Papers (5)
Raimondas Lencevicius,Urs Hölzle,Ambuj K. Singh +2 more
- 09 Oct 1997
Wim De Pauw,Gary Sevitsky +1 more
- 14 Jun 1999
Alex Potanin,James Noble,Robert Biddle +2 more
- 13 Apr 2004