Graphical user interfaces for algorithmic debugging

  • Rickard Westman
  • Peter Fritzson
Visualization and Graphical User Interfaces
Part of the Lecture Notes in Computer Science book series (LNCS, volume 749)


Algorithmic Debugging is a method for semi-automatic program debugging, where the debugger incrementally acquires knowledge about the debugged program by interacting with the user. However, a major obstacle that prevents large-scale use of the method is the large number of questions (sometimes hard to answer) put to the user. One important improvement would be to provide a graphical user interface (GUI) for algorithmic debugging that provides context and additional information that makes it easier for the user to answer questions, and is flexible enough to let the user postpone answering certain questions and to a greater extent control where to look for the bug. In this paper we discuss several of these issues, and present a prototype graphical user interface that has been implemented and used as a part of a generalized algorithmic debugger for imperative languages, and recently adapted to an algorithmic debugger for lazy functional languages.


Graphical User Interface Logic Program Recursive Call Call Graph Intended Behavior 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [AM86]
    E. Adams and S.S. Muchnik, DBXTool: A Window-Based Symbolic Debugger for Sun Workstations. Software Practice and Experience, pp. 653–669, July 1986.Google Scholar
  2. [Bov87]
    J.D. Bovey, A Debugger For A Graphical Workstation, Software Practice and Experience, pp. 647–662, September 1987.Google Scholar
  3. [ES90]
    Margarete Ellis and Bjarne Stroustrup. The Annotated C++ Reference Manual. Addison-Wesley, 1990.Google Scholar
  4. [FAS92]
    Peter Fritzson, Mikhail Auguston and Nahid Shahmehri. Using Assertions in Declarative and Operational Models for Automated Debugging. Accepted for publication in the journal Systems and Software 1992.Google Scholar
  5. [FGKS91]
    Peter Fritzson, Tibor Gyimothy, Mariam Kamkar and Nahid Shahmehri. Generalized Algorithmic Debugging and Testing. Proceedings of the ACM SIGPLAN'91, pp. 317–326, Toronto, Ontario, Canada, June 1991. Also accepted to LOPLAS, and as report LiTH-IDA-R-90-42.Google Scholar
  6. [GWM88]
    J.H. Griffin, H.J. Wasserman, and LP. Mcgavran, A debugger for parallell processes. Software Practice and Experience, pp. 1179–1190, December 1988.Google Scholar
  7. [HRB88]
    Susan Horwitz, Thomas Reps and David Binkley: Interprocedural Slicing using Dependence Graphs. ACM Transactions on Programming Languages and Systems, Vol. 12, No. 1, pages 26–61, January 1990.Google Scholar
  8. [ISO87]
    Sadahiro Isoda, Takao Shimomura and Yuji Ono. VIPS: A Visual Debugger. IEEE Software, pp. 8–19, May 1987.Google Scholar
  9. [KSF92]
    Mariam Kamkar, Nahid Shahmehri and Peter Fritzson: Interprocedural Dynamic Slicing. In Proc of PLILP'92, August 26—28, 1992. LNCS 631, Springer-Verlag,. Also as research report LiTH-R-91-20.Google Scholar
  10. [Kam92]
    Mariam Kamkar: Interprocedural Dynamic Slicing with Applications to Debugging and Testing. Ph.D. thesis, Linköping University, April 1993.Google Scholar
  11. [KL88]
    Bogdan Korel and Janusz Laski: Dynamic Program Slicing. Information Processing Letters, pp 155–163, October 1988.Google Scholar
  12. [LS88]
    Yossi Lichtenstein and Ehud Shapiro: Concurrent Algorithmic Debugging, In Proc of the ACM Workshop on Parallel and Distributed Debugging, Madison, Wisconsin, May 1998. Proc in SIGPLAN Notices 24:1, Jan 1989.Google Scholar
  13. [NF92]
    Henrik Nilsson, Peter Fritzson. Algorithmic Debugging for Lazy Functional Languages. In Proc. of PLILP'92 — Symposium on Programming Language Implementation and Logic Programming, Leuven, Belgium August 1992. LNCS 631, Springer Verlag.Google Scholar
  14. [Per86]
    Luis Moniz Pereira. Rational Debugging in Logic Programming. In Proc. of the Third Logic Programming Conference, pages 203–210, London, England, July 1986Google Scholar
  15. [Sha82]
    E.Y.Shapiro. Algorithmic Program Debugging. MIT Press, May 1982.Google Scholar
  16. [Sha91]
    Nahid Shahmehri. Generalized Algorithmic Debugging. Ph.D. thesis, Linköping University, Dec. 1991.Google Scholar
  17. [WGM88]
    Andre Weinand, Erich Gamma and Rudolf Marty, ET++ — An Object-Oriented Application Framework in C++. In Proc. of OOPSLA'88, pages 46–57, San Diego, California, September 1988.Google Scholar
  18. [Wei84]
    Mark Weiser: Program Slicing. IEEE Transactions on Software Engineering, Vol. Se-10, No. 4, pages 352–357, July 1984.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1993

Authors and Affiliations

  • Rickard Westman
    • 1
  • Peter Fritzson
    • 1
  1. 1.Programming Environments Laboratory Department of Computer and Information ScienceLinköping UniversityLinköpingSweden

Personalised recommendations