Increase max-lisp-eval-depth adjustment while in debugger (bug#31919)

* src/eval.c (call_debugger): Increase the amount of extra Lisp
evaluation depth given to the debugger to allow it to call cl-print.
* lisp/emacs-lisp/debug.el (debugger-setup-buffer): Add a comment
to suggest updating call_debugger when changing print-level.
This commit is contained in:
Gemini Lasswell 2018-06-20 13:58:33 -07:00
parent ab983522a1
commit 4bd43b0352
2 changed files with 7 additions and 2 deletions

View file

@ -322,6 +322,7 @@ That buffer should be current already."
(backtrace-frames 'debug)))
(print-escape-newlines t)
(print-escape-control-characters t)
;; If you increase print-level, add more depth in call_debugger.
(print-level 8)
(print-length 50)
(pos (point)))

View file

@ -282,8 +282,12 @@ call_debugger (Lisp_Object arg)
/* Do not allow max_specpdl_size less than actual depth (Bug#16603). */
EMACS_INT old_max = max (max_specpdl_size, count);
if (lisp_eval_depth + 40 > max_lisp_eval_depth)
max_lisp_eval_depth = lisp_eval_depth + 40;
/* The previous value of 40 is too small now that the debugger
prints using cl-prin1 instead of prin1. Printing lists nested 8
deep (which is the value of print-level used in the debugger)
currently requires 77 additional frames. See bug#31919. */
if (lisp_eval_depth + 100 > max_lisp_eval_depth)
max_lisp_eval_depth = lisp_eval_depth + 100;
/* While debugging Bug#16603, previous value of 100 was found
too small to avoid specpdl overflow in the debugger itself. */