Using events to debug Java programs backwards in time

  • Authors:
  • Bil Lewis;Mireille Ducasse

  • Affiliations:
  • Lambda Computer Science, Menlo Park, CA;IRISA/INSA de Rennes, Rennes Cedex, France

  • Venue:
  • OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

An "Omniscient Debugger" works by recording all state changes in the run of a program, and then allowing the programmer to explore the history of that program - effectively going "backwards in time." Event analysis debuggers work by observing events as they occur, and allowing the programmer to write queries which will pause the program when matched - effectively highly sophisticated breakpoints.Recently we have integrated the two techniques to produce an omniscient debugger which can use event queries to search the history of a program interactively. The query mechanism is designed along the lines of an EMACS incremental search, where the query is typed into a "minibuffer" at the bottom of the debugger window, and the commands "next match" and "previous match" are single keystrokes. The result is instantaneous feedback with no danger of missing an interesting state by going too far.