Visual Debugging

Advanced debuggers available in modern IDEs make it easier to debug programs and understand their runtime behavior. In this project we aim to enrich software debuggers in popular Java IDEs with visual methods that provide more insight into information available at the runtime. Example for this information are traces collected at tracepoints set by the user, the values of the variables over time, or values in large arrays.

Our efforts gave rise to the 'Eclipse Debugging Aids', a collection of free open source debugging tools for Eclipse.

Data
  • Traces collected at trace-points set by the user.
     
  • Value histories of variables selected by the users.
     
  • Large arrays of arbitrary types.
Tasks
  • Understand when and how often (time information) and how (thread + stack-trace information) the program reaches a specific execution point.
  • Understand when and how a specific variable is being accessed.
  • Understand when and how the value  of a specific variable has changed.
  • Compare traces or variable histories over time.
  • Find the code location that accessed / change a variable, or lead to a specific execution point.
  • Observe what values values exist in large array of an arbitrary type.
  • See how values of specific fields are distributed in a large array.
Users

Java Developers using popular Java IDEs. (current implementation supports the Eclipse IDE)

Scale
ordinal
discrete
Scope
point-based
Arrangement
linear
Viewpoint
ordered
Granularity & Calendars
none
Time Primitives
instant

Introduction

Modern integrated development environments (IDEs) offer a rich set of tools that support many stages of the software development process. These tools have become more interactive and more linked with each other. This has enabled developers to perform complex tasks such us program comprehension
and code analysis more easily.

One major component of IDEs is the debugger. It comprises a set of tools to test and debug programs while they are being executed. A source-level debugger enables debugging a program using the source-code available for it. It allows the developer to perform program animation (also referred to as stepping) and watch the values of variables at each step.

In this project we aim to enrich software debuggers in popular Java IDEs with visual methods that provide more insight into information available at the runtime such as traces collected at tracepoints set by the user, the values of the variables over time, or values in large arrays

Implementation

Research prototypes for two Eclipse Debugging Aids are available for download under the 2-Clause BSD License

Publications

Bilal Alsallakh, Peter Bodesinsky, Silvia Miksch, Dorna Nasseri, "Visualizing Arrays in the Eclipse Java IDE", 16th European Conference on Software Maintenance and Reengineering, pp. 541-544, 2012. paper http://youtu.be/7gTv9yUtFBc
Bilal Alsallakh, Peter Bodesinsky, Alexander Gruber, Silvia Miksch, "Visual Tracing for the Eclipse Java Debugger", 16th European Conference on Software Maintenance and Reengineering, pp. 545-548, 2012. paper Screencast