Dynamically prevent slime debugger

Hi, is there a good way to prevent slime (or rather swank) from dropping into the slime debugger depending on the value of a variable? Specifically I want to limit the number of open debugger windows to 1 and simply log all further simultaneous errors. Any help appreciated, Chris

You could change the *debugger-hook* variable to handle the conditions as what you want, e.g. (defvar *use-slime-debugger* t) (setq *debugger-hook* (let* ((slime-debugger-hook *debugger-hook*) (new-debugger-hook (lambda (&rest args) (if *use-slime-debugger* (apply slime-debugger-hook args) ; do what you want )))) new-debugger-hook)) But be aware, there might be additional problems you could meet. Best regards, Xiaofeng Yang 2014-03-06 7:19 GMT+08:00 Christopher Laux <ctlaux@gmail.com>:
Hi,
is there a good way to prevent slime (or rather swank) from dropping into the slime debugger depending on the value of a variable? Specifically I want to limit the number of open debugger windows to 1 and simply log all further simultaneous errors. Any help appreciated,
Chris

Thanks for the input, I've got it working now, albeit in a hackish way. But I think this is an idea for a feature in slime, other people must have this problem too: you have a lot of threads running and suddenly they all pop up the same error you can't sensibly interact with emacs any more... Chris On Thu, Mar 6, 2014 at 2:21 AM, Xiaofeng Yang <n.akr.akiiya@gmail.com>wrote:
You could change the *debugger-hook* variable to handle the conditions as what you want, e.g.
(defvar *use-slime-debugger* t) (setq *debugger-hook* (let* ((slime-debugger-hook *debugger-hook*) (new-debugger-hook (lambda (&rest args) (if *use-slime-debugger* (apply slime-debugger-hook args) ; do what you want )))) new-debugger-hook))
But be aware, there might be additional problems you could meet.
Best regards, Xiaofeng Yang
2014-03-06 7:19 GMT+08:00 Christopher Laux <ctlaux@gmail.com>:
Hi,
is there a good way to prevent slime (or rather swank) from dropping into the slime debugger depending on the value of a variable? Specifically I want to limit the number of open debugger windows to 1 and simply log all further simultaneous errors. Any help appreciated,
Chris

On Thu, Mar 6, 2014 at 10:06 AM, Christopher Laux <ctlaux@gmail.com> wrote:
Thanks for the input, I've got it working now, albeit in a hackish way. But I think this is an idea for a feature in slime, other people must have this problem too: you have a lot of threads running and suddenly they all pop up the same error you can't sensibly interact with emacs any more...
Agreed. Registered the feature request at <https://github.com/slime/slime/issues/129>. Cheers, -- Luís Oliveira http://kerno.org/~luis/

On Wed, Mar 5, 2014 at 11:19 PM, Christopher Laux <ctlaux@gmail.com> wrote:
is there a good way to prevent slime (or rather swank) from dropping into the slime debugger depending on the value of a variable? Specifically I want to limit the number of open debugger windows to 1 and simply log all further simultaneous errors. Any help appreciated,
You could setup a handler-bind in your code that decides whether to let a error go through or catch it and log it. Have you tried that? -- Luís Oliveira http://kerno.org/~luis/
participants (3)
-
Christopher Laux
-
Luís Oliveira
-
Xiaofeng Yang