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

From: Lars Magne Ingebrigtsen <[email-masked]>
Date: Fri, 16 Sep 2011 22:24:32 +0200

Daniel Clemente <[email-masked]> writes:

>   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")

This was marked as notabug wontfix, but it's apparently been fixed
anyway.  :-)

You now get a further bug and your environment isn't lost:

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

-- 
(domestic pets only, the antidote for overdose, milk.)
  bloggy blog http://lars.ingebrigtsen.no/