aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMattias EngdegÄrd2026-01-09 15:25:35 +0100
committerMattias EngdegÄrd2026-01-09 17:19:45 +0100
commitcdfb7354d6e1eacc8fa4cf567861c9cef0f07dac (patch)
tree645510d24f8e2d26ff5ebfb78eaf506669560ba5 /src
parentd9cc684d104e83dd0e020d76616914f200836f6f (diff)
downloademacs-cdfb7354d6e1eacc8fa4cf567861c9cef0f07dac.tar.gz
emacs-cdfb7354d6e1eacc8fa4cf567861c9cef0f07dac.zip
Less stingy lisp-eval-depth supply for debugger
* src/eval.c (call_debugger, signal_or_quit): Raise extra headroom to 200 levels. The debugger is sometimes entered via handler-bind so we raise the bar there as well (bug#80154).
Diffstat (limited to 'src')
-rw-r--r--src/eval.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/eval.c b/src/eval.c
index 73a2e2a54a2..7ca9d761a7e 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -285,11 +285,10 @@ call_debugger (Lisp_Object arg)
285 specpdl_ref count = SPECPDL_INDEX (); 285 specpdl_ref count = SPECPDL_INDEX ();
286 Lisp_Object val; 286 Lisp_Object val;
287 287
288 /* The previous value of 40 is too small now that the debugger 288 /* The debugger currently requires 77 additional frames to print lists
289 prints using cl-prin1 instead of prin1. Printing lists nested 8 289 nested 8 deep (the value of print-level used in the debugger) using
290 deep (which is the value of print-level used in the debugger) 290 cl-prin1 (bug#31919), with a margin to be on the safe side. */
291 currently requires 77 additional frames. See bug#31919. */ 291 max_ensure_room (200);
292 max_ensure_room (100);
293 292
294#ifdef HAVE_WINDOW_SYSTEM 293#ifdef HAVE_WINDOW_SYSTEM
295 if (display_hourglass_p) 294 if (display_hourglass_p)
@@ -1982,7 +1981,9 @@ signal_or_quit (Lisp_Object error_symbol, Lisp_Object data, bool continuable)
1982 if (!NILP (find_handler_clause (h->tag_or_ch, conditions))) 1981 if (!NILP (find_handler_clause (h->tag_or_ch, conditions)))
1983 { 1982 {
1984 specpdl_ref count = SPECPDL_INDEX (); 1983 specpdl_ref count = SPECPDL_INDEX ();
1985 max_ensure_room (20); 1984 /* Add some room in case this is for debugging, as in
1985 call_debugger. */
1986 max_ensure_room (200);
1986 push_handler (make_fixnum (skip + h->bytecode_dest), 1987 push_handler (make_fixnum (skip + h->bytecode_dest),
1987 SKIP_CONDITIONS); 1988 SKIP_CONDITIONS);
1988 calln (h->val, error); 1989 calln (h->val, error);