GNU bug report logs -
#65622
Inappropriate suppression of backtrace on an error
Previous Next
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.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Wed, 20 Sep 2023 15:55:37 +0000
with message-id <ZQsV-W0FXuXuecv5 <at> ACM>
and subject line Re: bug#65622: Inappropriate suppression of backtrace on an error
has caused the debbugs.gnu.org bug report #65622,
regarding Inappropriate suppression of backtrace on an error
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
65622: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=65622
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
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).
[Message part 3 (message/rfc822, inline)]
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).
This bug report was last modified 1 year and 247 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.