]> git.eshelyaron.com Git - emacs.git/commitdiff
Avoid printing stacktraces when it probably wouldn't work anyway.
authorPhilipp Stephani <phst@google.com>
Sat, 2 Jan 2021 14:04:50 +0000 (15:04 +0100)
committerPhilipp Stephani <phst@google.com>
Sat, 2 Jan 2021 14:04:50 +0000 (15:04 +0100)
* src/eval.c (signal_or_quit): Don't try to call the debugger if it's
inhibited or we are about to dump or bootstrap.  In those cases the
debugger probably wouldn't work anyway.

src/eval.c

index d0db902217bd26d20cc280544f0ba0dab13aef47..706aafdf509a037c23c94219f21968525d70fdeb 100644 (file)
@@ -1731,12 +1731,16 @@ signal_or_quit (Lisp_Object error_symbol, Lisp_Object data, bool keyboard_quit)
        return Qnil;
     }
 
-  /* If we're in batch mode, print a backtrace unconditionally to help with
-     debugging.  Make sure to use `debug' unconditionally to not interfere with
-     ERT or other packages that install custom debuggers.  */
+  /* If we're in batch mode, print a backtrace unconditionally to help
+     with debugging.  Make sure to use `debug' unconditionally to not
+     interfere with ERT or other packages that install custom
+     debuggers.  Don't try to call the debugger while dumping or
+     bootstrapping, it wouldn't work anyway.  */
   if (!debugger_called && !NILP (error_symbol)
-      && (NILP (clause) || EQ (h->tag_or_ch, Qerror)) && noninteractive
-      && backtrace_on_error_noninteractive)
+      && (NILP (clause) || EQ (h->tag_or_ch, Qerror))
+      && noninteractive && backtrace_on_error_noninteractive
+      && !will_dump_p () && !will_bootstrap_p ()
+      && NILP (Vinhibit_debugger))
     {
       ptrdiff_t count = SPECPDL_INDEX ();
       specbind (Vdebugger, Qdebug);