A Dataflow Language for Scriptable Debugging

Guillaume Marceau, Gregory H. Cooper, Shriram Krishnamurthi, Steven P. Reiss

IEEE International Symposium on Automated Software Engineering, 2004

(Invited to Journal.)


Debugging is a laborious, manual activity that often involves the repetition of common operations. Ideally, users should be able to describe these repetitious operations as little programs. Debuggers should therefore be programmable, or scriptable. The operating environment of these scripts, however, imposes interesting design challenges on the programming language in which these scripts will be written.

This paper presents our design of a language for scripting debuggers. The language offers powerful primitives that can precisely and concisely capture many important debugging and comprehension metaphors. The paper also describes a debugger for the Java language built in accordance with these principles. We have implemented this debugger to run alongside the Java Virtual Machine. The paper includes concrete examples of applying the debugger to programs.


This paper has been superceded by the journal version, which improves the exposition, provides more implementation detail, and describes a second implementation.



These papers may differ in formatting from the versions that appear in print. They are made available only to support the rapid dissemination of results; the printed versions, not these, should be considered definitive. The copyrights belong to their respective owners.