Subject: Re: bug#67196: M-: uses a wrong value of debug-on-error when it is nil.

From: Eli Zaretskii <[email-masked]>
Date: Sat, 25 Nov 2023 09:59:45 +0200

> Date: Fri, 24 Nov 2023 22:21:27 +0000
> Cc: Eli Zaretskii <[email-masked]>, [email-masked], [email-masked]
> From: Alan Mackenzie <[email-masked]>
> 
> > So you kicked the can a bit further down the road.
> > The next bug report will be that `M-: debug-from--eval-expression` does
> > not return the expected value.
> 
> Not at all.  debug-from--eval-expression is a purely internal variable,
> unlike debug-on-error which is intended for user use.  It is bound in
> exactly one place, and tested in exactly one place.
> 
> Anybody reporting such a "bug" would legitimately get the reply "not a
> bug".

How about not exposing the internal variable to Lisp at all?

> For what it's worth, I lost about 10 hours of time trying to debug
> a situation where I wasn't getting a backtrace, despite debug-on-error
> being t.  The problem was that d-o-e wasn't t at all, it was nil.  M-:
> had been lying.  

You never described that situation, AFAICT.  I think you should, so
that we could assess how grave the problem is, which is an important
part of deciding whether the solution you propose is useful.  I don't
understand how could you NOT get a backtrace when debug-on-error is
non-nil.