Report ID
1998-34
Report Authors
Raimondas Lencevicius, Urs Hoelzle, and Ambuj K. Singh
Report Date
Abstract
Program errors are hard to find because of the cause-effect gap between thetime when an error occurs and the time when the error becomes apparent to theprogrammer. Although debugging techniques such as conditional and databreakpoints help to find error causes in simple cases, they fail to effectivelybridge the cause-effect gap in many situations. Dynamic query-based debuggersoffer programmers an effective tool that provides instant error alert bycontinuously checking inter-object relationships while the debugged program isrunning. To speed up dynamic query evaluation, our debugger (implemented inportable Java) uses a combination of program instrumentation, load-time codegeneration, query optimization, and incremental reevaluation. Experiments anda query cost model show that selection queries are efficient in most cases,while more costly join queries are practical when query evaluations areinfrequent or query domains are small.
Document
1998-34.ps199.93 KB