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.

Problem Description: Data - Tasks - Users
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)

Modelling Time
Scale: 
ordinal
Scale: 
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
Alsallakh, Bilal, Peter Bodesinsky, Silvia Miksch, and Dorna Nasseri. "Visualizing Arrays in the Eclipse Java IDE." In 16th European Conference on Software Maintenance and Reengineering, 541-544. Szeged - Hungary: IEEE Computer Society, 2012.application/pdf iconposter application/pdf iconpaper video/mp4 iconvideo
Alsallakh, Bilal, Peter Bodesinsky, Alexander Gruber, and Silvia Miksch. "Visual Tracing for the Eclipse Java Debugger." In 16th European Conference on Software Maintenance and Reengineering, edited by Tom Mens, 545-548. Szeged - Hungary: IEEE Computer Society, 2012.application/pdf iconposter application/pdf iconpaper video/mp4 iconvideo