Description

HDJ is an Eclipse plugin developed at the Universitat Politècnica de València. It allows the programmer to debug a Java program using three different debugging techniques: trace debugging, algorithmic debugging and omniscient debugging.

During a debugging session, the programmer can switch between the three techniques exploiting the best properties of each of them.

The plugin allows the programmer to switch between three perspectives:

[Debug:] This perspective allows us to perform trace debugging. It is the standard perspective of Eclipse for debugging. It is composed of several views and editors and it offers a wide functionality that includes conditional breakpoints, exception breakpoints, watch points, etc.

[ODJ:] This perspective allows us to perform omniscient debugging. It offers the same funcionality as the standard debug perspective (breakpoints, variables inspection, etc.), but it also allows the programmer to explore the execution backwards.

[DDJ:] This perspective allows us to perform declarative debugging. It collects all the computations performed during the execution of the program and we only have to answer the questions performed by the debugger in order to find a bug. The questions are of the form: Should the execution of this routine with these inputs obtain these outputs? or in other words: Does this routine execution behave as expected?