[slime-devel] Re: Multi-threaded debugging in Allegro?

Luke Gorrie luke at bluetail.com
Fri Jul 2 22:23:51 UTC 2004


Peter Seibel <peter at javamonkey.com> writes:

> So I was checking out whether multi-threaded debugging in Allegro
> worked and did this:
>
>   CL-USER> (mp:process-run-function "foo" #'(lambda () (break)))
>
> One time it seemed to have opened up an SLDB buffer to debug the
> thread which I didn't notice at first and found later. But I just
> tried it again from a freshly started SLIME and it didn't go into
> SLDB.

The workaround is to put this line in ~/.swank.lisp:

  (setq *debugger-hook* #'swank:swank-debugger-hook)

I'm still thinking about the right fix. The problem is that the new
thread is not inheriting our *DEBUGGER-HOOK* so it doesn't know to
debug with SLDB.

ACL has fancy mechanisms for controlling inheritance of special
variables, though at the moment I suspect globally setting
*debugger-hook* as above is the right way.

> So two questions: 1) Am I doing something wrong now that's causing it
> not to use SLDB and

No, our bug.

> 2) Assuming I am, is it supposed to silently create the SLDB buffer?
> Is there some way to know that a thread has ended up in the
> debugger?

When a thread hits SLDB the buffer should /always/ pop up. I think in
your case SLDB was not invoked at all, and that if you switch to
*inferior-lisp* you'll see the TTY debugger there.

-Luke






More information about the slime-devel mailing list