[plt-scheme] debugging in PLT Scheme

From: Geoffrey S. Knauth (geoff at knauth.org)
Date: Mon Dec 4 05:50:27 EST 2006

Greg Cooper and Chris Warrington, thank you for your advice.  The  
debugger's much better than I thought, and works as you describe.

Geoffrey S. Knauth | http://knauth.org/gsk

On Dec 3, 2006, at 13:32, Gregory Cooper wrote:

> There's a short blurb in the Help Desk under "debug button" that
> documents how to do these things.  It's not very detailed, though, so
> I'll point out a few caveats.
>> * Breakpoints
> To set a breakpoint at the beginning (end) of an expression,
> right-click on its left (right) paren, and a popup menu should appear
> with the option to "pause at this expression".  If you select that
> option, a small red circle will appear over the paren, and the program
> will stop at that point.  However.
> * Not all expressions support breakpoints.  If you mouse over a
> breakable paren, a ghosted circle will appear.
> * If an expression is in tail position, you cannot break at the end  
> of it.
> * If your program is not in the (module ...) language, the debugger
> only discovers which expressions are breakable after they are fed to
> the evaluator.  However, in recent versions (since v350 at least), the
> debugger remembers the set of breakable expressions (and breakpoints)
> across consecutive invocations.  So, if you click Debug, then Continue
> to let the program run to completion, then Debug again, you should
> have immediate access to all the breakable expressions.
>> * Current Values
>> What I'd really like to do is see what values `date' and `special-
>> sundays' hold, without changing any code.  Is there a way to do that?
> If 'date' and 'special-sundays' are lexical variables (not top-level),
> mousing over them should display their values up next to the debugger
> controls (opposite where the expression value appears).  In addition,
> if you right-click on the variable in the Definitions Window, there
> should be an option to print the value in the Interactions window.

Posted on the users mailing list.