[slime-devel] Re: local variables lost in cmucl
heller at common-lisp.net
Tue Dec 6 07:37:26 UTC 2005
* Giorgos Pontikakis [2005-12-05 23:30+0100] writes:
> So, my next question is: Are there any other alternatives for having
> information for local variables _and_ source code location recording
> simultaneously? Maybe with another Lisp implementation (preferably
> on Linux)?
> I have tried SBCL and CLISP, but:
> -- SBCL+SLIME behaves similarly with (if not worse than) CMUCL+SLIME.
> (which I find plausible, since SBCL is a CMUCL fork).
Yes that's probably true. I think SBCL records the source location
also for LOADed source files, but SBCL has no interpreter (everything
is compiled) and I think SBCL has the same issue as CMUCL with regard
to local variables.
> -- CLISP+SLIME does not even give me a backtrace (although the CLISP
> debugger alone does. I think I've read somewhere in the SLIME docs that
> this is a CLISP issue.
I don't quite understand how CLISP works. The backtrace is apparently
the entire stack content which includes much more than "frames" with
local variables. There is also no real API for the debugger; that
makes it hard for SLIME to produce something sensible.
> Or maybe I didn't set up thing appropriately with either implementation.
> I don't know. If you can enlighten me, I would be grateful!
Lispworks has a pretty good debugger in that regard. Lispworks also
supports the "restart-frame" thing so that you can replace a compiled
function with a interpreted version before restarting. Interpreted
code can also be stepped, but that's not supported by SLIME.
OTOH, experienced programmers don't seem to use sophisticated
debuggers. Most of them are happy with print statements. Probably
because they write short and easy to test functions.
More information about the slime-devel