Declarative and visual debugging in Eclipse

We present a declarative and visual debugging environment for Eclipse called JIVE.1 Traditional debugging is procedural in that a programmer must proceed step-by-step and object-by-object in order to uncover the cause of an error. In contrast, we present a declarative approach to debugging consisting of a flexible set of queries over a program's execution history as well as over individual runtime states. This runtime information is depicted in a visual manner during program execution in order to aid the debugging process. The current state of execution is depicted through an enhanced object diagram, and the history of execution is depicted by a sequence diagram. Our methodology makes use of these diagrams as a means of formulating queries and reporting results in a visual manner. It also supports revisiting past runtime states, either through reverse stepping of the program or through queries that report information from past states. Eclipse serves as an ideal framework for implementing JIVE since, like the JIVE architecture, it makes crucial use of the Java Platform Debugging Architecture (JPDA). This paper presents details of the JIVE architecture and its integration into Eclipse.

[1]  Hausi A. Müller,et al.  Shimba—an environment for reverse engineering Java software systems , 2001, Softw. Pract. Exp..

[2]  Mark N. Wegman,et al.  Execution Patterns in Object-Oriented Visualization , 1998, COOTS.

[3]  Bharat Jayaraman,et al.  Interactive visualization of Java programs , 2002, Proceedings IEEE 2002 Symposia on Human Centric Computing Languages and Environments.

[4]  Atanas Rountev,et al.  Interactive Exploration of UML Sequence Diagrams , 2005, 3rd IEEE International Workshop on Visualizing Software for Understanding and Analysis.

[5]  Gregory Tassey,et al.  Prepared for what , 2007 .

[6]  Brad A. Myers,et al.  Designing the whyline: a debugging interface for asking questions about program behavior , 2004, CHI.

[7]  Benjamin Livshits,et al.  Finding application errors and security flaws using PQL: a program query language , 2005, OOPSLA '05.

[8]  Alexander Aiken,et al.  Relational queries over program traces , 2005, OOPSLA '05.

[9]  Andreas Zeller,et al.  DDD—a free graphical front-end for UNIX debuggers , 1996, SIGP.

[10]  Bharat Jayaraman,et al.  Visualizing errors in object oriented programs , 2005, OOPSLA '05.

[11]  Michael Kölling,et al.  Guidelines for teaching object orientation with Java , 2001, ITiCSE '01.

[12]  R. Kollmann,et al.  Capturing Dynamic Program Behaviour with UML Collaboration Diagrams , 2001, CSMR.

[13]  Bharat Jayaraman,et al.  Methodology and architecture of JIVE , 2005, SoftVis '05.

[14]  Steven P. Reiss Visualizing Java in action , 2003, SoftVis '03.

[15]  Eugene H. Spafford,et al.  Debugging with dynamic slicing and backtracking , 1993, Softw. Pract. Exp..

[16]  Paul V. Gestwicki,et al.  Interactive visualization of object-oriented programs , 2004, OOPSLA '04.

[17]  Mireille Ducassé,et al.  Opium: An Extendable Trace Analyzer for Prolog , 1999, J. Log. Program..

[18]  Wim De Pauw,et al.  Visualizing Object-Oriented Programs with Jinsight , 1998, ECOOP Workshops.

[19]  Thomas Schmitt,et al.  JAVAVIS: Automatic Program Visualization with Object and Sequence Diagrams Using the Java Debug Interface (JDI) , 2001, Software Visualization.

[20]  Ambuj K. Singh,et al.  Query-based debugging of object-oriented programs , 1997, OOPSLA '97.

[21]  Bil Lewis,et al.  Debugging Backwards in Time , 2003, ArXiv.