[slime-devel] SLIME debugger and local vars

Helmut Eller e9626484 at stud3.tuwien.ac.at
Mon Nov 22 11:12:25 UTC 2004


Lynn Quam <quam at ai.sri.com> writes:

> I tried (debug 3), but that didn't appear to help.  Is this because
> the symbol names are not available, or because the debugger cannot
> figure out the assiciation between the stack locations and the local
> variables?

I don't know, and I'd like too know too.  Franz' documentations says
explicitly that names of variables are recorded with (debug 3).  But
it seems to me that Allegro's native debugger also shows
EXCL::|local-2| etc.  So, it I think its not a SLIME specific problem.

>         DTM-TO-LVCS-TRANSFORM = :<NOT-AVAILABLE>
>         FUNCTION = :<NOT-AVAILABLE>
>
> I tried:
>
>    (declaim (optimize (safety 3)(space 0)(speed 0)(debug 3))), 
>
> but that didn't appear to help. What is the problem?

No idea :(  On possibility is that those variables are not yet
initialized.  The CMUCL manual says:

(debug 3):
    Level 2 plus all uninterned variables. In addition, lifetime analysis is
    disabled (even when speed is 3), ensuring that all variable values are
    available at any known location within the scope of the binding. This has
    a speed penalty in addition to the obvious space penalty.

Perhaps those variables are no longer "in scope".  Or the compiler
doesn't do what the documentation says.

In such situations I often switch to the interpreter.  Usually, all
local variables are available in interpreted code.  Of course, CMUCL's
interpreter is so slow, that it is often not feasible use it.  It would
be nice if CMUCL had a switch to disable _all_ optimizations but still
compile to native code.

Helmut.




More information about the slime-devel mailing list