Subject: 23.0.92; A typing error in debugger-eval-expression stops the debugger

From: Daniel Clemente <[email-masked]>
Date: Sat, 11 Apr 2009 19:01:47 -0700 (PDT)

Eval anything with (debug) on it, like:

(let* ((x 3) (y 1))
(debug)
(dotimes (a x) (setq y (* y x)))
y
)

  When the debugger appears, press e to evaluate some symbol. You can type x RET to see the value of x. But now try a symbol which doesn't exist, for instance z. You get:

Debugger entered--Lisp error: (void-variable z)
  eval(z)
  eval-expression(z)
  debugger-eval-expression(z)
  call-interactively(debugger-eval-expression nil nil)
  recursive-edit()

  And at this point, your debugger session is (apparently) lost and you can't continue debugging your program: e.g. "c" doesn't work and it only says (error "Cannot return from the debugger in an error")
  It is very annoying that Emacs makes you restart debugging just because you did a typing error in a very infortunate moment. Even if there is some way to get out of this „error inside the evaluated expression“, the default behaviour is shocking.

  Can't errors like void-variable / void-function be ignored by default in debugger-mode?

-- Daniel