Temporal Model for Debugging and Visualizations

Bharat Jayaraman, Demian Lessa · 2010

This paper discusses the benefits of a temporal data model for debugging and run-time visualization of object-oriented software. Current debugging models generally only provide access to the current program state and support manual exploration of the state to uncover the cause of program errors. However, often the cause of an error lies in distant previous states, and a more comprehensive view of the execution history is necessary to uncover such errors. This is achieved through our proposed temporal data model and query language. This paper also shows the benefits of UML-like object and sequence diagrams for representing respectively the current run-time state and execution history. The main contribution of this paper lies in showing that declarative temporal queries and (run-time) object/sequence diagrams work in a symbiotic manner to achieve a more effective debugging system: queries help the user to focus on specific regions of the diagrams, while the diagrams provide a framework for reporting the answers to queries. Since run-time visualizations become unwieldy for large executions, we propose two broad classes of techniques to achieve compact sequence diagrams: folding operations, for nested calls and also a sequence of calls; and filtering operations, to remove unnecessary or irrelevant calls relative to a debugging task. We introduce a refinement of the sequence diagram to account for missing calls, and regular-expression labels for compacted execution sequences. Together, these techniques have proven to be effective and they form part of Jive, a state-of-the-art debugging system for Java.

Read the paper · More papers on PaperTik