object-debugger.plt: Object Debugger

_object-debugger.plt: Object Debugger_

Written by: Carl Eastlund (cce at ccs dot neu dot edu)
Keywords: _object debugger_ _sequence trace_

Full documentation on the object debugger can be found at:


_Object Debugger Instructions_

The Object Debugger is a new language level inside DrScheme. It provides the
same environment as the PLT Graphical language, but with an instrumented version
of the class library.

_Running the Object Debugger_

To use the Object Debugger, load any program that runs in the PLT Graphical
language. Switch to the Object Debugger language. Run the program. DrScheme
opens an Object Debugger window for the execution of the program.

_Modules and the Object Debugger_

The Object Debugger can debug programs with multiple modules, but only if the
modules use the instrumented bindings for the class library. To debug a module
with the Object Debugger, replace all references to (lib "") with (lib

_Interacting with the Object Debugger_

For now, the Debugger produces a static image representing the execution of
(object-oriented portions of) a program. Users may examine the image by
scrolling around using the scrollbars on the top and left, or by clicking and
dragging the main bottom-right pane. The image is available while the program
executes. To add actions executed since the image was generated, users may press
the Update button in the top-left.

_Interpreting the Object Debugger_

The Object Debugger window has four primary components. It has a control panel
in the upper left. It has an object panel in the upper right. It has an action
panel in the lower left. It has an execution panel in the lower right.

The control panel contains the Update button, which redraws the other panels to
include new actions. It also contains the total count of objects and actions in
the current image.

The object panel contains the name and class name of each object encountered so
far in the execution.

The action panel contains a line for each action in the execution, including the
name of the source and target object of the action and the name of the kind of
action. Actions include new (object creation), get (field access), set (field
update), call (method invocation), return (method completion), and inspect
(class inspection).

The execution panel shows the full image of the program's execution. It contains
a lifeline for each object, vertically aligned under its header in the object
panel. It contains an arrow for each action, horizontally aligned to the right
of its line in the action panel. Action arrows are labeled with the kind of
action and the arguments to the action. Both lifelines and action arrows are
highlighted to show where control passes from one object to another. Some
actions pass control and others do not.


Copyright (C) 2006  Northeastern University PLT

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA