GNU bug report logs - #65622
Inappropriate suppression of backtrace on an error

Previous Next

Package: emacs;

Reported by: Alan Mackenzie <acm <at> muc.de>

Date: Wed, 30 Aug 2023 13:09:02 UTC

Severity: normal

Done: Alan Mackenzie <acm <at> muc.de>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 65622 in the body.
You can then email your comments to 65622 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#65622; Package emacs. (Wed, 30 Aug 2023 13:09:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Alan Mackenzie <acm <at> muc.de>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Wed, 30 Aug 2023 13:09:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Alan Mackenzie <acm <at> muc.de>
To: bug-gnu-emacs <at> gnu.org
Subject: Inappropriate suppression of backtrace on an error
Date: Wed, 30 Aug 2023 13:08:26 +0000
Hello, Emacs.

On a recent master branch Emacs:
(i) emacs -Q
(ii) Insert the following into *scratch*:

(defmacro hash-if (condition then-form &rest else-forms)
  "A conditional compilation macro analogous to C's #if.
Evaluate CONDITION at macro-expansion time.  If it is non-nil,
expand the macro to THEN-FORM.  Otherwise expand it to ELSE-FORMS
enclosed in a `progn' form.  ELSE-FORMS may be empty."
  (declare (indent 2)
           (debug (form sexp &rest sexp)))
  (if (eval condition lexical-binding)
      then-form
    (cons 'progn else-forms)))

(defun foo (bar)
  (hash-if (< emacs-major-version 19)
      (car bar)
    (cons bar bar)))

(iii) Evaluate hash-if by putting point after it and doing C-x C-e.
(iv) Attempt to instrument foo for edebug by putting point inside foo and
  doing C-u C-M-x.  This throws the error: "Ignoring macroexpansion
  error: (void-function edebug-after)".
(v) Set debug-on-error to t with M-: (setq debug-on-error t).
(vi) Repeat (iv).  This throws the same error, without a backtrace.  This
  lack of a backtrace is a bug.
(vii) This backtrace is almost certainly being suppressed by a frivolous
  condition-case, whose main purpose appears to be making debugging more
  difficult.  ;-)
(viii) There would appear to be no justification for "ignoring" the error
  (void-function edebug-after).  Such error should not occur, and needs
  debugging.

-- 
Alan Mackenzie (Nuremberg, Germany).




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#65622; Package emacs. (Wed, 30 Aug 2023 23:18:02 GMT) Full text and rfc822 format available.

Message #8 received at 65622 <at> debbugs.gnu.org (full text, mbox):

From: Michael Heerdegen <michael_heerdegen <at> web.de>
To: Alan Mackenzie <acm <at> muc.de>
Cc: 65622 <at> debbugs.gnu.org
Subject: Re: bug#65622: Inappropriate suppression of backtrace on an error
Date: Thu, 31 Aug 2023 01:16:42 +0200
Alan Mackenzie <acm <at> muc.de> writes:

> Hello, Emacs.
> (v) Set debug-on-error to t with M-: (setq debug-on-error t).
> (vi) Repeat (iv).  This throws the same error, without a backtrace.  This
>   lack of a backtrace is a bug.

I think you just need (setq eval-expression-debug-on-error t).

Stumbled over the same issue ... yesterday?, or so.  Also when debugging
Edebug.

Maybe people would like debug-on-error -> t taking precedence over
eval-expression-debug-on-error -> nil?  The danger is they turn both off
by default and then forget about the second one.

Michael.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#65622; Package emacs. (Thu, 31 Aug 2023 07:43:02 GMT) Full text and rfc822 format available.

Message #11 received at 65622 <at> debbugs.gnu.org (full text, mbox):

From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
To: Michael Heerdegen <michael_heerdegen <at> web.de>
Cc: Alan Mackenzie <acm <at> muc.de>, 65622 <at> debbugs.gnu.org
Subject: Re: bug#65622: Inappropriate suppression of backtrace on an error
Date: Thu, 31 Aug 2023 09:41:22 +0200
Michael Heerdegen <michael_heerdegen <at> web.de> writes:

> Maybe people would like debug-on-error -> t taking precedence over
> eval-expression-debug-on-error -> nil?  

FWIW, I would.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#65622; Package emacs. (Thu, 31 Aug 2023 07:51:02 GMT) Full text and rfc822 format available.

Message #14 received at 65622 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Gerd Möllmann <gerd.moellmann <at> gmail.com>
Cc: michael_heerdegen <at> web.de, acm <at> muc.de, 65622 <at> debbugs.gnu.org
Subject: Re: bug#65622: Inappropriate suppression of backtrace on an error
Date: Thu, 31 Aug 2023 10:49:58 +0300
> Cc: Alan Mackenzie <acm <at> muc.de>, 65622 <at> debbugs.gnu.org
> From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
> Date: Thu, 31 Aug 2023 09:41:22 +0200
> 
> Michael Heerdegen <michael_heerdegen <at> web.de> writes:
> 
> > Maybe people would like debug-on-error -> t taking precedence over
> > eval-expression-debug-on-error -> nil?  
> 
> FWIW, I would.

That'd probably require a special non-nil, non-t value of
debug-on-error, to avoid surprising others.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#65622; Package emacs. (Thu, 31 Aug 2023 08:22:01 GMT) Full text and rfc822 format available.

Message #17 received at 65622 <at> debbugs.gnu.org (full text, mbox):

From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: michael_heerdegen <at> web.de, acm <at> muc.de, 65622 <at> debbugs.gnu.org
Subject: Re: bug#65622: Inappropriate suppression of backtrace on an error
Date: Thu, 31 Aug 2023 10:21:14 +0200
On 31.08.23 09:49, Eli Zaretskii wrote:
>> Cc: Alan Mackenzie <acm <at> muc.de>, 65622 <at> debbugs.gnu.org
>> From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
>> Date: Thu, 31 Aug 2023 09:41:22 +0200
>>
>> Michael Heerdegen <michael_heerdegen <at> web.de> writes:
>>
>>> Maybe people would like debug-on-error -> t taking precedence over
>>> eval-expression-debug-on-error -> nil?
>>
>> FWIW, I would.
> 
> That'd probably require a special non-nil, non-t value of
> debug-on-error, to avoid surprising others.

Yes, that's maybe a bit too much effort.




Reply sent to Alan Mackenzie <acm <at> muc.de>:
You have taken responsibility. (Wed, 20 Sep 2023 15:56:02 GMT) Full text and rfc822 format available.

Notification sent to Alan Mackenzie <acm <at> muc.de>:
bug acknowledged by developer. (Wed, 20 Sep 2023 15:56:02 GMT) Full text and rfc822 format available.

Message #22 received at 65622-done <at> debbugs.gnu.org (full text, mbox):

From: Alan Mackenzie <acm <at> muc.de>
To: Michael Heerdegen <michael_heerdegen <at> web.de>
Cc: acm <at> muc.de, 65622-done <at> debbugs.gnu.org
Subject: Re: bug#65622: Inappropriate suppression of backtrace on an error
Date: Wed, 20 Sep 2023 15:55:37 +0000
Hello, Michael.

The bug is now fixed.

On Thu, Aug 31, 2023 at 01:16:42 +0200, Michael Heerdegen wrote:
> Alan Mackenzie <acm <at> muc.de> writes:

> > Hello, Emacs.
> > (v) Set debug-on-error to t with M-: (setq debug-on-error t).
> > (vi) Repeat (iv).  This throws the same error, without a backtrace.  This
> >   lack of a backtrace is a bug.

> I think you just need (setq eval-expression-debug-on-error t).

> Stumbled over the same issue ... yesterday?, or so.  Also when debugging
> Edebug.

> Maybe people would like debug-on-error -> t taking precedence over
> eval-expression-debug-on-error -> nil?  The danger is they turn both off
> by default and then forget about the second one.

> Michael.

-- 
Alan Mackenzie (Nuremberg, Germany).




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#65622; Package emacs. (Thu, 21 Sep 2023 01:46:01 GMT) Full text and rfc822 format available.

Message #25 received at 65622 <at> debbugs.gnu.org (full text, mbox):

From: Michael Heerdegen <michael_heerdegen <at> web.de>
To: 65622 <at> debbugs.gnu.org
Cc: acm <at> muc.de
Subject: Re: bug#65622: Inappropriate suppression of backtrace on an error
Date: Thu, 21 Sep 2023 03:44:47 +0200
Alan Mackenzie <acm <at> muc.de> writes:

> Hello, Michael.
>
> The bug is now fixed.

Great, thanks [...looking at the fix...] so this had nothing to do at
all with `eval-expression-debug-on-error'?

Michael.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#65622; Package emacs. (Thu, 21 Sep 2023 13:25:02 GMT) Full text and rfc822 format available.

Message #28 received at 65622 <at> debbugs.gnu.org (full text, mbox):

From: Alan Mackenzie <acm <at> muc.de>
To: Michael Heerdegen <michael_heerdegen <at> web.de>
Cc: 65622 <at> debbugs.gnu.org
Subject: Re: bug#65622: Inappropriate suppression of backtrace on an error
Date: Thu, 21 Sep 2023 13:24:36 +0000
Hello, Michael.

On Thu, Sep 21, 2023 at 03:44:47 +0200, Michael Heerdegen wrote:
> Alan Mackenzie <acm <at> muc.de> writes:

> > The bug is now fixed.

> Great, thanks [...looking at the fix...] so this had nothing to do at
> all with `eval-expression-debug-on-error'?

Well, not really.  But having eval-expression-debug-on-error set now
causes useful backtraces on the particular error.  In fact, two
successive backtraces, then a bare error message for a single error.
This is not ideal, but IMHO better than what came before.

And there was a devilish typo there, too, which took me days to find.
:-(

> Michael.

-- 
Alan Mackenzie (Nuremberg, Germany).




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Fri, 20 Oct 2023 11:24:06 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 203 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.