Try (setf *break-on-signals* 'error) (or other condition class).<br><br>Cheers,<br>Vsevolod Dyomkin<br><br><div class="gmail_quote">On Sat, May 23, 2009 at 5:35 PM, Bill St. Clair <span dir="ltr"><<a href="mailto:billstclair@gmail.com">billstclair@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">I'm running the latest CVS version of slime, "2009-05-19" in a fairly<br>
recent CCL (OpenMCL), "Version 1.3-r11936 (DarwinX8664)".<br>
<br>
I would expect the following code to bring up an SLDB buffer with a<br>
break loop in the repl:<br>
<br>
(setq *break-on-signals* t)<br>
<br>
(handler-case (error "foo") (error () 1))<br>
<br>
Instead, it returns 1. This is not surprising given this in swank-openmcl.lisp:<br>
<br>
(defun break-in-sldb (x y &rest args)<br>
(let ((*sldb-stack-top-hint* (or *sldb-stack-top-hint*<br>
(ccl::%get-frame-ptr))))<br>
(apply #'cerror y (if args "Break: ~a" x) args)))<br>
<br>
I'm debugging some server code that really needs to catch all errors.<br>
This makes it rather difficult. The only workaround I've discovered is<br>
to set swank-backend::*break-in-sldb* to NIL and use CCL's builtin<br>
debugger. Not my favorite debugging environment.<br>
<br>
Clues, anyone?<br>
<br>
I could probably fix this myself, and if nobody else has done it, I<br>
may be forced to, but I'd rather make progress on my application code.<br>
<br>
-Bill<br>
<br>
_______________________________________________<br>
slime-devel site list<br>
<a href="mailto:slime-devel@common-lisp.net">slime-devel@common-lisp.net</a><br>
<a href="http://common-lisp.net/mailman/listinfo/slime-devel" target="_blank">http://common-lisp.net/mailman/listinfo/slime-devel</a><br>
</blockquote></div><br><br clear="all"><br>-- <br>vsevolod<br>