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.
Preview
Unable to display preview. Download preview PDF.
References
A. Adam and J.-P. Laurent. Laura, a system to debug student programs. Artificial Intelligence, 15(1,2):75–122, November 1980.
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.
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.
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.
R. Davis. Diagnostic reasoning based on structure and behaviour. Artificial Intelligence, 1–3(24):347–410, December 1984.
R.A. DeMillo, W.M. McCracken, R.J. Martin, and J.F. Passafiume. Software testing and evaluation. Benjamin/Cumming, Menlo Park, 1987.
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.
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.
D. Jackson. Aspect: An economical bug-detector. In Proceedings of the 13th ICSE, pages 13–22. IEEE, IEEE Computer Society Press, May 1991.
W.L. Johnson and E. Soloway. Proust: Knowledge-based program understanding. IEEE Transactions on Software Engineering, SE-11(3):267–275, March 1985.
W.L. Johnson, E. Soloway, B. Cutler, and S. Draper. Bug catalogue: I. Technical Report 286, Yale University, 1983.
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.
B. Korel. PELAS-program error-locating assistant system. IEEE Transactions on Software Engineering, 14(9):1253–1260, September 1988.
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.
B. Korel and J. Laski. Dynamic program slicing. Information Processing Letters, 29(3):155–163, 1988.
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.
R.I. Kuper. Dependency-directed localization of software bugs. Technical report 1053, MIT, May 1989.
C.H. LeDoux. A knowledge-based system for debugging concurrent software. PhD thesis, University of California, Los Angeles, 1985.
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.
D. Luckham, S. Sankar, and S. Takahashi. Two-dimensional pinpointing: Debugging with formal specifications. IEEE Software, 8(1):74–84, January 1991.
F.J. Lukey. Understanding and debugging programs. Int. J. Man-Machine Studies, 12(2):189–202, February 1980.
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.
W.R. Murray. Automatic Program Debugging for Intelligent Tutoring Systems. Research notes in Artificial Intelligence. Pitman, London, 1988.
L.M. Pereira. Rational debugging in Logic Programming. In 3rd Logic Programming Conference, pages 203–210, London, July 1986.
G.R. Ruth. Intelligent program analysis. Artificial Intelligence, 7(1):65–85, 1976.
R.E. Seviora. Knowledge-based program debugging systems. IEEE Software, 4(3):20–32, May 1987.
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.
E.Y. Shapiro. Algorithmic Program Debugging. MIT Press, Cambridge, MA, 1983.
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.
J.C. Spohrer, E. Soloway, and E. Pope. A goal/plan analysis of buggy Pascal programs. Human-computer Interaction, 1(2):163–207, 1985.
H. Takahashi and E. Shibayama. Preset — a debugging environment for Prolog. In Logic Programming Conference, pages 90–99, Tokyo, 1985.
M. Weiser. Program slicing. IEEE Transactions on Software Engineering, SE-10(4):352–357, July 1984.
H. Wertz. Stereotyped program debugging: an aid for novice programmers. International Journal of Man-Machine Studies, 16, 1982.
H. Wertz. Automatic Correction and Improvement of Programs. Artificial Intelligence, J. Campbell ed. Ellis Horwood, England, 1987.
Author information
Authors and Affiliations
Editor information
Rights 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