[slime-devel] swank:slime-debugger-function ?
Pierre-François Gomez
pierre-francois.gomez at NOSPAM-laposte.net
Sun May 2 10:11:03 UTC 2004
"Thomas F. Burdick" <tfb at OCF.Berkeley.EDU> writes:
> Helmut Eller writes:
> > Pierre-François Gomez <pierre-francois.gomez at NOSPAM-laposte.net>
> > writes:
> >
> > > Has it been replaced by something else ?
> >
> > Sort of. I'm not familiar with Araneida, but it might work if you
What do you mean by "sort of" ? Has it been renamed ? Not that this is
really important : i'm just curious :)
> > do:
> >
> > (setf *restart-on-handler-errors* #'swank:swank-debugger-hook)
(snip the test by Thomas f. Burdick)
> I assume this will all work right with the threaded listener; I use
> the serve-event based one.
I confirm your assumption : it works with the threaded listener, too.
I simply added the setf form just after having loaded araneida (it's a
separate sbcl image dedicated to my future app) and when a handler
produces an error (i just added an 'assert' form), i now have this
message in the *slime-repl* buffer :
debugger invoked on a SB-INT:SIMPLE-PROGRAM-ERROR in thread 25738:
invalid number of arguments: 1
I then discovered M-x slime-list-threads and i was able to "enter" the
thread using 'd' on its id. I have the following backtrace :
Restarts:
0: [CONTINUE] Continue from interrupt.
1: [ABORT-RESPONSE] Abort this response and answer another request
2: [DESTROY-THREAD] Destroy this thread (25738)
Backtrace:
0: ("XEP for SWANK-DEBUGGER-HOOK" 1 #<SIMPLE-ERROR {941DD01}> #<unused argument>)[:EXTERNAL]
1: (ARANEIDA::HANDLER-DEBUGGER-HOOK #<SIMPLE-ERROR {941DD01}> #<unavailable argument>)
2: (INVOKE-DEBUGGER 1 #<SIMPLE-ERROR {941DD01}>)[:EXTERNAL]
3: (ERROR 1 #<SIMPLE-ERROR {941DD01}>)[:EXTERNAL]
4: (SB-KERNEL:ASSERT-ERROR 3 (TMP-OF HANDLER) NIL NIL)[:EXTERNAL]
5: ((HANDLE-REQUEST-RESPONSE (TEST-ERROR-HANDLER T T)) #<unavailable argument> #<unavailable argument> #<TEST-ERROR-HANDLER {9DCF159}> #<unavailable argument> #<REQUEST {92926B9}>)
6: ((HANDLE-REQUEST (HANDLER T)) #<unavailable argument> #<unavailable argument> #<TEST-ERROR-HANDLER {9DCF159}> #<REQUEST {92926B9}>)
7: ((HANDLE-REQUEST (HANDLER T)) #<unavailable argument> #<unavailable argument> #<DISPATCHING-HANDLER {9F68351}> #<REQUEST {92926B9}>)
8: ("LABELS ARANEIDA::DO-IT" #<THREADED-HTTP-LISTENER {9DCF319}> #<FILE-STREAM for "a constant string" {91B28D9}>)
9: (ARANEIDA::THREADED-HTTP-LISTENER-ACCEPT-ONE-REQUEST #<THREADED-HTTP-LISTENER {9DCF319}> #S(ARANEIDA::HTTP-THREAD :PID 25738 :LAST-HIT NIL :QUITTING NIL))
10: ("#'(LAMBDA NIL (LOOP #))")
11: ("XEP for #'(LAMBDA NIL (LOOP #))" 0)[:EXTERNAL]
12: ("#'(LAMBDA NIL (LET # # ...))")
13: ("foreign function call land: ra=#x805B011")
14: ("foreign function call land: ra=#x805AE2D")
I now have access to the debugger, which is what i wanted.
I'm a little confused with the "debugger invoked" message, though. I'm
not yet fluent with the debugger, but it seems there's another error
than my assert here, isn't it ?
I'll continue to dive into this. Now that i have access to the debugger,
i think i can manage. And it's a good way to learn :)
I'll try to figure out what happens and if i find something interesting
for slime, i'll post it.
I think i'm ok with this now. I now have a starting point, at least.
Thank you ! :)
--
Pierre-François Gomez GnuPG: 0xA38AE42C
More information about the slime-devel
mailing list