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:
parent
ab983522a1
commit
4bd43b0352
2 changed files with 7 additions and 2 deletions
|
@ -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)))
|
||||
|
|
|
@ -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. */
|
||||
|
|
Loading…
Add table
Reference in a new issue