Skip to main content

A pragmatic survey of automated debugging

  • Surveys and Tutorials
  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 749))

Abstract

This article proposes a structuring view of the area of automated debugging. Nineteen automated debugging systems are analyzed. Thirteen existing automated debugging techniques are briefly evaluated from a pragmatic point of view. The three underlying strategies are identified, namely verification with respect to specification, checking with respect to language knowledge and filtering with respect to symptom.

The verification strategy compares the actual program with some formal specification of the intended program. The checking strategy looks for suspect places which do not comply with some explicit knowledge of the programming language. The filtering strategy assumes correct parts of the code which cannot be responsible for the error symptom.

Assertion evaluation and algorithmic debugging are the most promising verification techniques. Some intrinsic limitations of the checking strategy makes it only a complementary, though helpful, debugging support. The slicing technique should be included in any debugger.

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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. A. Adam and J.-P. Laurent. Laura, a system to debug student programs. Artificial Intelligence, 15(1,2):75–122, November 1980.

    Google Scholar 

  2. H. Agrawal and J.R. Horgan. Dynamic program slicing. SIGPLAN Notices, 25(6):246–256, June 1990. Proceedings of the ACM SIGPLAN'90 Conference on Programming Language Design and Implementation, White Plains, New York.

    Google Scholar 

  3. R.S. Boyer and J.S. Moore. An overview of automated reasoning and related fields: Program verification. Journal of Automated Reasoning, 1(1):17–23, 1985.

    Google Scholar 

  4. P. Brna, A. Bundy, H. Pain, and L. Lynch. Programming tools for Prolog environments. In J. Hallam and C. Mellish, editors, Advances in Artificial Intelligence, pages 251–264. J. Wiley and Sons, 1987. also published as DAI Research paper 302.

    Google Scholar 

  5. R. Davis. Diagnostic reasoning based on structure and behaviour. Artificial Intelligence, 1–3(24):347–410, December 1984.

    Google Scholar 

  6. R.A. DeMillo, W.M. McCracken, R.J. Martin, and J.F. Passafiume. Software testing and evaluation. Benjamin/Cumming, Menlo Park, 1987.

    Google Scholar 

  7. W. Drabent, S. Nadjm-Tehrani, and J. Maluszynski. The use of assertions in algorithmic debugging. In Proceedings of the International Conference on Fifth Generation Computer Systems, pages 573–581. ICOT, December 1988.

    Google Scholar 

  8. M. Ducassé and A.-M. Emde. Opium: a debugging environment for Prolog development and debugging research. ACM Software Engineering Notes, 16(1):54–59, January 1991. Demonstration presented at the Fourth Symposium on Software Development Environments.

    Google Scholar 

  9. D. Jackson. Aspect: An economical bug-detector. In Proceedings of the 13th ICSE, pages 13–22. IEEE, IEEE Computer Society Press, May 1991.

    Google Scholar 

  10. W.L. Johnson and E. Soloway. Proust: Knowledge-based program understanding. IEEE Transactions on Software Engineering, SE-11(3):267–275, March 1985.

    Google Scholar 

  11. W.L. Johnson, E. Soloway, B. Cutler, and S. Draper. Bug catalogue: I. Technical Report 286, Yale University, 1983.

    Google Scholar 

  12. M. Kamkar, N. Shahmehri, and P. Fritzson. Bug localization by algorithmic debugging and program slicing. In P. Deransart and J. Maluszynski, editors, PLILP'90, Lecture Notes in Computer Science, Linkoeping, Sweden, August 1990. Springer-Verlag.

    Google Scholar 

  13. B. Korel. PELAS-program error-locating assistant system. IEEE Transactions on Software Engineering, 14(9):1253–1260, September 1988.

    Google Scholar 

  14. B. Korel. Identifying faulty modifications in software maintenance. In P. Fritzson, editor, Proceedings of the First Workshop on Automated and Algorithmic Debugging, University of Linkoeping, Sweden, May 1993. Lecture Notes in Computer Sciences, Springer-Verlag.

    Google Scholar 

  15. B. Korel and J. Laski. Dynamic program slicing. Information Processing Letters, 29(3):155–163, 1988.

    Google Scholar 

  16. K. Kuchcinski, W. Drabent, and J. Maluszynski. Automatic diagnosis of VLSI circuits using algorithmic debugging. In P. Fritzson, editor, Proceedings of the First Workshop on Automated and Algorithmic Debugging, University of Linkoeping, Sweden, May 1993. Lecture Notes in Computer Sciences, Springer-Verlag.

    Google Scholar 

  17. R.I. Kuper. Dependency-directed localization of software bugs. Technical report 1053, MIT, May 1989.

    Google Scholar 

  18. C.H. LeDoux. A knowledge-based system for debugging concurrent software. PhD thesis, University of California, Los Angeles, 1985.

    Google Scholar 

  19. C-K. Looi. Analysing novices' programs in a Prolog intelligent teaching system. In Proceedings of the European Conference on Artificial Intelligence, pages 314–319, Munich, August 1988.

    Google Scholar 

  20. D. Luckham, S. Sankar, and S. Takahashi. Two-dimensional pinpointing: Debugging with formal specifications. IEEE Software, 8(1):74–84, January 1991.

    Google Scholar 

  21. F.J. Lukey. Understanding and debugging programs. Int. J. Man-Machine Studies, 12(2):189–202, February 1980.

    Google Scholar 

  22. J.R. Lyle and M. Weiser. Automatic program bug location by program slicing. In The Second International Conference on Computers and Applications, Peking, June 1987.

    Google Scholar 

  23. W.R. Murray. Automatic Program Debugging for Intelligent Tutoring Systems. Research notes in Artificial Intelligence. Pitman, London, 1988.

    Google Scholar 

  24. L.M. Pereira. Rational debugging in Logic Programming. In 3rd Logic Programming Conference, pages 203–210, London, July 1986.

    Google Scholar 

  25. G.R. Ruth. Intelligent program analysis. Artificial Intelligence, 7(1):65–85, 1976.

    Google Scholar 

  26. R.E. Seviora. Knowledge-based program debugging systems. IEEE Software, 4(3):20–32, May 1987.

    Google Scholar 

  27. N. Shahmehri, M. Kamkar, and P. Fritzson. Usability criteria for automated debugging systems. In P. Fritzson, editor, Proceedings of the First Workshop on Automated and Algorithmic Debugging, University of Linkoeping, Sweden, May 1993. Lecture Notes in Computer Sciences, Springer-Verlag.

    Google Scholar 

  28. E.Y. Shapiro. Algorithmic Program Debugging. MIT Press, Cambridge, MA, 1983.

    Google Scholar 

  29. J.C. Spohrer, E. Pope, M. Lipman, and W. Sack. Bug catalogue: II, III, IV. Research Report YALEU/CSD/RR #386, Yale University, Department of Computer Science, May 1985.

    Google Scholar 

  30. J.C. Spohrer, E. Soloway, and E. Pope. A goal/plan analysis of buggy Pascal programs. Human-computer Interaction, 1(2):163–207, 1985.

    Google Scholar 

  31. H. Takahashi and E. Shibayama. Preset — a debugging environment for Prolog. In Logic Programming Conference, pages 90–99, Tokyo, 1985.

    Google Scholar 

  32. M. Weiser. Program slicing. IEEE Transactions on Software Engineering, SE-10(4):352–357, July 1984.

    Google Scholar 

  33. H. Wertz. Stereotyped program debugging: an aid for novice programmers. International Journal of Man-Machine Studies, 16, 1982.

    Google Scholar 

  34. H. Wertz. Automatic Correction and Improvement of Programs. Artificial Intelligence, J. Campbell ed. Ellis Horwood, England, 1987.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Peter A. Fritzson

Rights and permissions

Reprints and permissions

Copyright information

© 1993 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Ducassé, M. (1993). A pragmatic survey of automated debugging. In: Fritzson, P.A. (eds) Automated and Algorithmic Debugging. AADEBUG 1993. Lecture Notes in Computer Science, vol 749. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0019397

Download citation

  • DOI: https://doi.org/10.1007/BFb0019397

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-57417-0

  • Online ISBN: 978-3-540-48141-6

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics