Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/646156.679711guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Dynamic Query-Based Debugging

Published: 14 June 1999 Publication History

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.

References

[1]
Anderson E., Dynamic Visualization of Object Programs Written in C++, Objective Software Technology Ltd., http://www.objectivesoft.com/, 1995.
[2]
Buneman, O.P.; Clemons E.K., Efficiently Monitoring Relational Databases. ACM Transactions on Database Systems, 4(3), pp. 368-382, September 1979.
[3]
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.
[4]
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.
[5]
Brown, M.H., Exploring Algorithms Using Balsa-II, IEEE Computer 21(5), pp. 14- 36, May 1988.
[6]
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.
[7]
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.
[8]
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.
[9]
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.
[10]
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.
[11]
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.
[12]
Eisenstadt, M., My Hairiest Bug War Stories, Communications of the ACM, Vol. 40., No. 4, pp. 30-38, April 1997.
[13]
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.
[14]
Gosling, J., Joy, B., Steele, G., The Java Language Specification, Addison-Wesley 1996.
[15]
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.
[16]
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.
[17]
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.
[18]
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.
[19]
Keller, R., Hölzle, U.; Binary Component Adaptation, Proceedings ECOOP'98, Springer Verlag Lecture Notes on Computer Science, Brussels, Belgium, July 1998.
[20]
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.
[21]
Laffra C., Advanced Java: Idioms, Pitfalls, Styles and Programming Tips, pp. 229- 252, Prentice Hall 1997.
[22]
Liang, S., Bracha, G.; Dynamic Class Loading in the Java Virtual Machine, Proceedings of OOPSLA'98, pp. 36-44, Vancouver, October 1998. Published as SIGPLAN Notices 33(10), October 1998.
[23]
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.
[24]
Laffra C., Malhotra A., HotWire: A Visual Debugger for C++, Proceedings of the USENIX C++ Conference, pp. 109-122, Usenix Association 1994.
[25]
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.
[26]
Lange, D.B., Nakamura Y. Object-Oriented Program Tracing and Visualization, IEEE Computer, vol. 30, no. 5, pp. 63-70, May 1997.
[27]
Meyer B., Object-Oriented Software Construction, pp. 111 - 163, Prentice-Hall, 1988.
[28]
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.
[29]
Roman G.-C., Cox K.C., A Taxonomy of Program Visualization Systems, IEEE Computer 26(12), pp. 11-24, December 1993.
[30]
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.
[31]
Standard Performance Evaluation Corporation, SPEC JVM98 Benchmarks, http://www.spec.org/osg/jvm98/, 1998.
[32]
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.
[33]
Java 2 SDK Production Release, http://www.sun.com/solaris/, 1999.
[34]
Stasko, J., TANGO: A Framework and System for Algorithm Animation, IEEE Computer 23(9), pp. 27-39.
[35]
Tip, F., A Survey of Program Slicing Techniques. Journal of Programming Languages, vol.3, (no.3) pp. 121-89, Sept. 1995.
[36]
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.
[37]
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.
[38]
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.
[39]
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.

Cited By

View all
  • (2019)Sindarin: a versatile scripting API for the Pharo debuggerProceedings of the 15th ACM SIGPLAN International Symposium on Dynamic Languages10.1145/3359619.3359745(67-79)Online publication date: 20-Oct-2019
  • (2017)Analysis and exploration for new generation debuggersProceedings of the 12th edition of the International Workshop on Smalltalk Technologies10.1145/3139903.3139910(1-6)Online publication date: 4-Sep-2017
  • (2012)Synthesizing iterators from abstraction functionsACM SIGPLAN Notices10.1145/2480361.237140748:3(31-40)Online publication date: 26-Sep-2012
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Guide Proceedings
ECOOP '99: Proceedings of the 13th European Conference on Object-Oriented Programming
June 1999
528 pages
ISBN:3540661565

Publisher

Springer-Verlag

Berlin, Heidelberg

Publication History

Published: 14 June 1999

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 13 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2019)Sindarin: a versatile scripting API for the Pharo debuggerProceedings of the 15th ACM SIGPLAN International Symposium on Dynamic Languages10.1145/3359619.3359745(67-79)Online publication date: 20-Oct-2019
  • (2017)Analysis and exploration for new generation debuggersProceedings of the 12th edition of the International Workshop on Smalltalk Technologies10.1145/3139903.3139910(1-6)Online publication date: 4-Sep-2017
  • (2012)Synthesizing iterators from abstraction functionsACM SIGPLAN Notices10.1145/2480361.237140748:3(31-40)Online publication date: 26-Sep-2012
  • (2012)Synthesizing iterators from abstraction functionsProceedings of the 11th International Conference on Generative Programming and Component Engineering10.1145/2371401.2371407(31-40)Online publication date: 26-Sep-2012
  • (2008)Caching and incrementalisation in the java query languageACM SIGPLAN Notices10.1145/1449955.144976643:10(1-18)Online publication date: 19-Oct-2008
  • (2008)Caching and incrementalisation in the java query languageProceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications10.1145/1449764.1449766(1-18)Online publication date: 19-Oct-2008
  • (2006)Efficient object querying for javaProceedings of the 20th European conference on Object-Oriented Programming10.1007/11785477_3(28-49)Online publication date: 3-Jul-2006
  • (2001)Tracing Execution of Software for Design CoverageProceedings of the 16th IEEE international conference on Automated software engineering10.5555/872023.872507Online publication date: 26-Nov-2001

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media