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.
-
Traces collected at trace-points set by the user.
-
Value histories of variables selected by the users.
- Large arrays of arbitrary types.
- 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.
Java Developers using popular Java IDEs. (current implementation supports the Eclipse IDE)
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