Skip to main content

Scaling Up Algorithmic Debugging with Virtual Execution Trees

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 6564))

Abstract

Declarative debugging is a powerful debugging technique that has been adapted to practically all programming languages. However, the technique suffers from important scalability problems in both time and memory. With realistic programs the huge size of the execution tree handled makes the debugging session impractical and too slow to be productive. In this work, we present a new architecture for declarative debuggers in which we adapt the technique to work with incomplete execution trees. This allows us to avoid the problem of loading the whole execution tree in main memory and solve the memory scalability problems. We also provide the technique with the ability to debug execution trees that are only partially generated. This allows the programmer to start the debugging session even before the execution tree is computed. This solves the time scalability problems. We have implemented the technique and show its practicality with several experiments conducted with real applications.

This work has been partially supported by the Spanish Ministerio de Ciencia e Innovación under grant TIN2008-06622-C03-02, by the Generalitat Valenciana under grant ACOMP/2010/042, and by the Universidad Politécnica de Valencia (Program PAID-06-08).

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Av-Ron, E.: Top-Down Diagnosis of Prolog Programs. PhD thesis, Weizmanm Institute (1984)

    Google Scholar 

  2. Binks, D.: Declarative Debugging in Gödel. PhD thesis, University of Bristol (1995)

    Google Scholar 

  3. Caballero, R.: A Declarative Debugger of Incorrect Answers for Constraint Functional-Logic Programs. In: Proc. of the 2005 ACM SIGPLAN Workshop on Curry and Functional Logic Programming (WCFLP 2005), pp. 8–13. ACM Press, New York (2005)

    Chapter  Google Scholar 

  4. Caballero, R.: Algorithmic Debugging of Java Programs. In: Proc. of the 2006 Workshop on Functional Logic Programming (WFLP 2006). Electronic Notes in Theoretical Computer Science, pp. 63–76 (2006)

    Google Scholar 

  5. Caballero, R., Martí-Oliet, N., Riesco, A., Verdejo, A.: A declarative debugger for maude functional modules. Electronic Notes Theoretical Computer Science 238(3), 63–81 (2009)

    Article  MATH  Google Scholar 

  6. Davie, T., Chitil, O.: Hat-delta: One Right Does Make a Wrong. In: Seventh Symposium on Trends in Functional Programming, TFP 2006 (April 2006)

    Google Scholar 

  7. Girgis, H., Jayaraman, B.: JavaDD: a Declarative Debugger for Java. Technical Report 2006-07, University at Buffalo (March 2006)

    Google Scholar 

  8. Kokai, G., Nilson, J., Niss, C.: GIDTS: A Graphical Programming Environment for Prolog. In: Workshop on Program Analysis For Software Tools and Engineering (PASTE 1999), pp. 95–104. ACM Press, New York (1999)

    Google Scholar 

  9. MacLarty, I.: Practical Declarative Debugging of Mercury Programs. PhD thesis, Department of Computer Science and Software Engineering, The University of Melbourne (2005)

    Google Scholar 

  10. Sun Microsystems. Java Platform Debugger Architecture - JPDA (2010), http://java.sun.com/javase/technologies/core/toolsapis/jpda/

  11. Nilsson, H., Fritzson, P.: Algorithmic Debugging for Lazy Functional Languages. Journal of Functional Programming 4(3), 337–370 (1994)

    Article  Google Scholar 

  12. Shapiro, E.Y.: Algorithmic Program Debugging. MIT Press, Cambridge (1982)

    MATH  Google Scholar 

  13. Silva, J.: An Empirical Evaluation of Algorithmic Debugging Strategies. Technical Report DSIC-II/10/09, UPV (2009), http://www.dsic.upv.es/~jsilva/research.htm#techs

  14. Silva, J.: Algorithmic debugging strategies. In: Proc. of International Symposium on Logic-based Program Synthesis and Transformation (LOPSTR 2006), pp. 134–140 (2006)

    Google Scholar 

  15. Silva, J.: A Comparative Study of Algorithmic Debugging Strategies. In: Puebla, G. (ed.) LOPSTR 2006. LNCS, vol. 4407, pp. 143–159. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Insa, D., Silva, J. (2011). Scaling Up Algorithmic Debugging with Virtual Execution Trees. In: Alpuente, M. (eds) Logic-Based Program Synthesis and Transformation. LOPSTR 2010. Lecture Notes in Computer Science, vol 6564. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-20551-4_10

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-20551-4_10

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-20550-7

  • Online ISBN: 978-3-642-20551-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics