Hi,
When I call BREAK in a Lisp-mode buffer using OpenMCL, I don't get the Slime debugger. Instead I get OpenMCL's own debugger, which looks like this:
;;;; (break) ...
Break in process worker(7): While executing: "Unknown" Type :GO to continue, :POP to abort. If continued: Return from BREAK.
Type :? for other options. 1 >
If I do the same thing from the REPL, I get the Slime debugger. I think I should get the Slime debugger in Lisp-mode as well. Obviously calling BREAK directly is not very useful, but when I insert breakpoints in functions by means of calls to BREAK I get the same behaviour. The behaviour depends on where the function is called, not on where it was compiled.
I'm using OpenMCL Version 1.0 (DarwinPPC32) and recent CVS Slime and GNU Emacs. Emacs was started with emacs -q so I don't think there's anything funny in my setup.
Graham
* graham@gorgeous.org [2006-06-24 20:33+0200] writes:
If I do the same thing from the REPL, I get the Slime debugger. I think I should get the Slime debugger in Lisp-mode as well. Obviously calling BREAK directly is not very useful, but when I insert breakpoints in functions by means of calls to BREAK I get the same behaviour. The behaviour depends on where the function is called, not on where it was compiled.
To enforce the Slime debugger you could use swank:simple-break instead of break.
I don't use OpenMCL myself, but after reading the code in swank-openmcl.lisp I'd say that BREAK invokes the Slime debugger only if it is called in the REPL thread. There's even a variable *break-in-sldb* to customize this a bit. We should probably add one more option so that sldb is invoked in all threads. If a OpenMCL user posts a patch for that, I will gladly commit it.
Helmut.