[Ecls-list] Useful backtrace information in the SLIME debugger
Dave Roberts
dave at vyatta.com
Wed Dec 20 18:47:59 UTC 2006
Juan Jose Garcia-Ripoll wrote:
> 2006/12/20, Dave Roberts <dave at vyatta.com>:
>> 1. I get a backtrace that simply consists of calls to "LAMBDA". This
>> makes it tremendously difficult sometimes to determine where, exactly,
>> my code has bombed out.
>
> Hmm, that means all functions which are called are "anonymous".
> Typically this happens with closures created automatically by some
> expansion code. I seem to recall that CLOS methods do name the LAMBDA
> forms that they create, so I cannot really tell. A simple reproducible
> example would be nice.
Thanks, Juanjo. I just figured this out. By default, SLIME only displays
the last 6 frames on the stack. I was just seeing this:
0: LAMBDA
1: LAMBDA
2: APPLY
3: CALL-WITH-DEBUGGING-ENVIRONMENT
4: LAMBDA
5: CALL-WITH-BINDINGS
6: DEBUG-IN-EMACS
--more--
I just figured out that I have to push past the "--more--" prompt and
expand the stack listing. Duh. When I do that, my function (FOO in this
case) shows up just fine at stack frame #9:
0: LAMBDA
1: LAMBDA
2: APPLY
3: CALL-WITH-DEBUGGING-ENVIRONMENT
4: LAMBDA
5: CALL-WITH-BINDINGS
6: DEBUG-IN-EMACS
7: SWANK-DEBUGGER-HOOK
8: SIMPLE-ASSERTION-FAILURE
9: FOO
Now, it may be the case that Swank should be filtering out its own cruft
from the stack traces (everything from SWANK-DEBUGGER-HOOK on) such that
all the Slime user sees is the SIMPLE-ASSERTION-FAILURE.
In any case, it's not an ECL issue. Sorry to have troubled you.
-- Dave
More information about the ecl-devel
mailing list