[slime-devel] Re: OpenMCL

Luke Gorrie luke at bluetail.com
Fri Dec 12 21:36:48 UTC 2003


Peter Seibel <peter at javamonkey.com> writes:

> Are you planning to make it possible to debug multiple threads
> simultaneously--I.e. it might be nice to set break points in two
> places that will be hit be different threads and then debug them both
> at the same time (in two different debugging buffers); for example
> step a little way in one thread, then switch to the other; etc.

Not initially. Is that something you need?

This is slightly tricky in SLIME because we support a synchronous
evaluation interface in Emacs Lisp. In Elisp you can write:

    (slime-eval '(swank:some-function))

And it will evaluate the form in Lisp and then return the
result. However, it might enter the debugger before it finishes, in
which case Emacs enters a "recursive edit" to do the debugging without
unwinding the Elisp stack (so that when you finish debugging it can
return the final result to the `slime-eval' call). If during debugging
you switched over to another thread and did another `slime-eval'
there, the stack would end up rather tangled -- you have two
`slime-eval's on the stack and have to return to one before the other.

A few possible solutions come to mind, but I think it will be better
to burn this bridge when we come to it and do some
experimentation. Ideas are always welcome, of course.

Cheers,
Luke






More information about the slime-devel mailing list