[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