1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-30 08:09:04 +00:00

(debugger_may_continue): New variable.

(syms_of_eval): Add a DEFVAR_BOOL for it.
(call_debugger): Bind it.
This commit is contained in:
Gerd Moellmann 1999-12-19 13:07:33 +00:00
parent 3b6207313b
commit 556d73147e

View File

@ -124,6 +124,12 @@ int max_lisp_eval_depth;
/* Nonzero means enter debugger before next function call */
int debug_on_next_call;
/* Non-zero means debuffer may continue. This is zero when the
debugger is called during redisplay, where it might not be safe to
continue the interrupted redisplay. */
int debugger_may_continue;
/* List of conditions (non-nil atom means all) which cause a backtrace
if an error is handled by the command loop's error handler. */
Lisp_Object Vstack_trace_on_error;
@ -197,6 +203,7 @@ call_debugger (arg)
Lisp_Object arg;
{
int debug_while_redisplaying;
int count = specpdl_ptr - specpdl;
Lisp_Object val;
if (lisp_eval_depth + 20 > max_lisp_eval_depth)
@ -212,6 +219,8 @@ call_debugger (arg)
displayed if the debugger is invoked during redisplay. */
debug_while_redisplaying = redisplaying_p;
redisplaying_p = 0;
specbind (intern ("debugger-may-continue"),
debug_while_redisplaying ? Qnil : Qt);
val = apply1 (Vdebugger, arg);
@ -221,7 +230,7 @@ call_debugger (arg)
if (debug_while_redisplaying)
Ftop_level ();
return val;
return unbind_to (count, val);
}
void
@ -3045,6 +3054,11 @@ Does not apply if quit is handled by a `condition-case'.");
DEFVAR_BOOL ("debug-on-next-call", &debug_on_next_call,
"Non-nil means enter debugger before next `eval', `apply' or `funcall'.");
DEFVAR_BOOL ("debugger-may-continue", &debugger_may_continue,
"Non-nil means debugger may continue execution.\n\
This is nil when the debugger is called under circumstances where it\n\
might not be safe to continue.");
DEFVAR_LISP ("debugger", &Vdebugger,
"Function to call to invoke debugger.\n\
If due to frame exit, args are `exit' and the value being returned;\n\