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 querybased 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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Anderson E., Dynamic Visualization of Object Programs Written in C++, Objective Software Technology Ltd., http://www.objectivesoft.com/, 1995.
Buneman, O.P.; Clemons E.K., Efficiently Monitoring Relational Databases. ACM Transactions on Database Systems, 4(3), pp. 368–382, September 1979.
Bertino, E., Guerrini, G., Extending the ODMG Object Model with Composite Objects, Proceedings of OOPSLA’98, pp. 259–270, Vancouver, October 1998. Published as SIGPLAN Notices 33(10), October 1998.
Blakeley, J.A.; Larson P.-A.; Tompa F. Wm.; Efficiently Updating Materialized Views. Proceedings of the ACM SIGMOD Conference on Management of Data, pp. 61–71, Washington, D.C., USA, May 1986. Published as SIGMOD Record 15(2), June 1986.
Brown, M.H., Exploring Algorithms Using Balsa-II, IEEE Computer 21(5), pp. 14–36, May 1988.
Brown, M.H., Zeus: A System for Algorithm Animation and Multi-View Editing, Proceedings of IEEE Workshop Visual Languages, pp. 4–9, IEEE CS Press, Los Alamitos, CA., 1991.
Consens, M. P., Hasan M.Z., Mendelzon A.O., Debugging Distributed Programs by Visualizing and Querying Event Traces, Applications of Databases, First International Conference, ADB-94, Vadstena, Sweden, June 21–23, 1994, Proceedings in Lecture Notes in Computer Science, Vol. 819, Springer, 1994.
Consens, M.; Mendelzon, A.; Ryman, A., Visualizing and Querying Software Structures, International Conference on Software Engineering, Melbourne, Australia, May 11–15, 1992, ACM Press, IEEE Computer Science, p. 138–156, 1992.
Coplien, J.O., Supporting Truly Object-Oriented Debugging of C++ Programs., In: Proceedings of the 1994 USENIX C++ Conference, Cambridge, MA, USA, 11–14 April 1994. pp. 99–108, Berkley, CA, USA: USENIX Assoc, 1994.
De Pauw, W.; Helm, R.; Kimelman, D.; Vlissides, J. Visualizing the Behavior of Object-Oriented Systems. In Proceedings of the 8th Annual ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, OOPSLA 1993, Washington, DC, USA, 26 Sept.–1 Oct. 1993. SIGPLAN Notices, Oct. 1993, vol. 28,(no.10):326–37.
de Pauw, W.; Lorenz, D.; Vlissides, J.; Wegman, M. Execution Patterns in Object-Oriented Visualization. Proceedings of the Fourth USENIX Conference on Object-Oriented Technologies and Systems, Sante Fe, NM, USA, 27–30 April 1998, USENIX Association, 1998. pp. 219–34.
Eisenstadt, M., My Hairiest Bug War Stories, Communications of the ACM, Vol. 40.,No. 4, pp. 30–38, April 1997.
Golan, M.; Hanson, D.R. Duel-A Very High-Level Debugging Language. In: USENIX Association. Proceedings of the Winter 1993 USENIX Conference. San Diego, CA, 25–29 Jan. 1993. Berkley, CA, USA: USENIX Assoc, 1993. p. 107–17.
Gosling, J., Joy, B., Steele, G., The Java Language Specification, Addison-Wesley 1996.
Gamma E., Weinand A., Marty R., Integration of a Programming Environment into ET++-a Case Study, Proceedings ECOOP’89 (Nottingham, UK, July 10–14), pp. 283–297, S. Cook, ed. Cambridge University Press, Cambridge, 1989.
Hart D., Kraemer E., Roman G.-C., Interactive Visual Exploration of Distributed Computations. Proceedings of the 11th International Parallel Processing Symposium, Geneva, Switzerland, pp.121–127, April 1997.
Hao, M.C.; Karp, A.H.; Waheed, A.; Jazayeri, M., VIZIR: An Integrated Environment for Distributed Program Visualization. Proceedings of the Third International Workshop on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems, MASCOTS’ 95, pp. 288–92, Durham, NC, USA, January 1995.
Kessler, P., Fast Breakpoints: Design and Implementation. Proceedings of ACM SIGPLAN conference on Programming Language Design and Implementation 1990, Published as SIGPLAN Notices 25(6), pp. 78–84, ACM Press, June 1990.
Keller, R., Hölzle, U.; Binary Component Adaptation, Proceedings ECOOP’98, Springer Verlag Lecture Notes on Computer Science, Brussels, Belgium, July 1998.
Kimelman D., Rosenburg B., Roth T., Strata-Various: Multi-Layer Visualization of Dynamics in Software System Behavior, Proceedings of Visualization’94, pp. 172–178, IEEE 1994.
Laffra C., Advanced Java: Idioms, Pitfalls, Styles and Programming Tips, pp. 229–252, Prentice Hall 1997.
Liang, S., Bracha, G.; Dynamic Class Loading in the JavaTM Virtual Machine, Proceedings of OOPSLA’98, pp. 36–44, Vancouver, October 1998. Published as SIGPLAN Notices 33(10), October 1998.
Lencevicius, R.; Hölzle, U.; Singh, A.K., Query-Based Debugging of Object-Oriented Programs, Proceedings of OOPSLA’97, pp. 304–317, Atlanta, GA, October 1997. Published as SIGPLAN Notices 32(10), October 1997.
Laffra C., Malhotra A., HotWire: A Visual Debugger for C++, Proceedings of the USENIX C++ Conference, pp. 109–122, Usenix Association 1994.
Litman D.; Mishra A.; Patel-Schneider P.F., Modeling Dynamic Collections of Interdependent Objects Using Path-Based Rules, Proceedings of OOPSLA’97, pp. 77–92, Atlanta, GA, October 1997. Published as SIGPLAN Notices 32(10), October 1997.
Lange, D.B., Nakamura Y. Object-Oriented Program Tracing and Visualization, IEEE Computer, vol. 30,no. 5, pp. 63–70, May 1997.
Meyer B., Object-Oriented Software Construction, pp. 111–163, Prentice-Hall, 1988.
Mössenböck, H., Films as Graphical Comments in the Source Code of Programs. Proceedings of the International Conference on Technology of Object Oriented Systems and Languages, TOOLS-23, pp. 89–98, Santa Barbara, CA, USA, July–August 1997.
Roman G.-C., Cox K.C., A Taxonomy of Program Visualization Systems, IEEE Computer 26(12), pp. 11–24, December 1993.
Roman, G.-C. et al., Pavane: A System for Declarative Visualization of Concurrent Computations, Journal of Visual Languages and Computing, Vol. 3,No. 2, pp. 161–193, June 1992.
Standard Performance Evaluation Corporation, SPEC JVM98 Benchmarks, http://www.spec.org/osg/jvm98/, 1998.
Sefika M., Sane A., Campbell R.H., Architecture-Oriented Visualization, In Proceedings of OOPSLA’96, pp. 389–405, San Jose, CA, October 1996. Published as SIGPLAN Notices 31(10), October 1996.
JavaTM 2 SDK Production Release, http://www.sun.com/solaris/, 1999.
Stasko, J., TANGO: A Framework and System for Algorithm Animation, IEEE Computer 23(9), pp. 27–39.
Tip, F., A Survey of Program Slicing Techniques. Journal of Programming Languages, vol.3,(no.3) pp. 121–89, Sept. 1995.
Weiser, M., Program Slicing. In: 5th International Conference on Software Engineering, San Diego, CA, USA, 9–12 March 1981. New York, NY, USA, pp. 439–49, IEEE, 1981.
Wahbe R., Lucco S., Graham S.L., Practical Data Breakpoints: Design and Implementation. Proceedings of ACM SIGPLAN conference on Programming Language Design and Implementation 1993, Albuquerque, June 1993. ACM Press 1993.
Weinand, A.; Gamma, E. ET++-a portable, homogenous class library and application framework. In: Computer Science Research at UBILAB, Strategy and Projects. Proceedings of the UBILAB Conference `94, Zurich, Switzerland, 1994. pp. 66–92. Edited by: Bischofberger, W.R; Frei, H.-P. Konstanz, Switzerland: Universitätsverlag Konstanz, 1994.
Walker, R.J., Murphy, G.C., Freeman-Benson, B., Wright, D., Swanson, D., Isaak, J., Visualizing Dynamic Software System Information through High-level Models, Proceedings of OOPSLA’98, pp. 271–283, Vancouver, October 1998. Published as SIGPLAN Notices 33(10), October 1998. 160 R. Lencevicius, U. Hoelzle, A.K. Singh
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1999 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Lencevicius, R., Hölzle, U., Singh, A.K. (1999). Dynamic Query-Based Debugging. In: Guerraoui, R. (eds) ECOOP’ 99 — Object-Oriented Programming. ECOOP 1999. Lecture Notes in Computer Science, vol 1628. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48743-3_7
Download citation
DOI: https://doi.org/10.1007/3-540-48743-3_7
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-66156-6
Online ISBN: 978-3-540-48743-2
eBook Packages: Springer Book Archive