The Design and Implementation of a Dataflow Language for Scriptable Debugging

The Design and Implementation of a Dataflow Language for Scriptable Debugging, Guillaume Marceau, Gregory H. Cooper, Jonathan P. Spiro, Shriram Krishnamurthi, and Steven P. Reiss.

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 are 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 pair of debuggers, one for Java and the other for Scheme, built in accordance with these principles. The paper includes concrete examples of applying this debugger to programs.

We've seen a paper on compiling dataflow languages, so here's one on an interesting application.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Ask, and I shall receive...


very nice...

It appears the scheme version of the tool works in all plt-scheme language levels- only the debug scripting requires frTime... This may not be clear from the link... so it's more than just a "toy" and can be used practically on real code, from what I can tell...

It looks really useful and innovative, although it appears you can't use it with standard debugging: Since you import the bindings from a separate source file, the plt stepper doesn't let you single-step your source in the referenced file... it seems like these two tools should be very synergistic if they could be used together... Anyone find a way around this limitation?

Thanks for making this tool available!

...on closer inspection...

...the module appears to define it's own breakpoint/stepping system that allows access to basic traditional debugging functionality, as well :)

Previously discussed here.

Previously discussed here.

Woops. :)

Woops. :)

No worries. It is sometimes

No worries. It is sometimes a good idea to revisit previously mentioned ideas.

Incremental compilation and PLTScheme

I would love to see a Smalltalk-like debugger for Scheme...