Previous: Edebug and Macros, Up: Edebug
These options affect the behavior of Edebug:
Functions to call before Edebug is used. Each time it is set to a new value, Edebug will call those functions once and then reset
edebug-setup-hook
tonil
. You could use this to load up Edebug specifications associated with a package you are using, but only when you also use Edebug. See Instrumenting.
If this is non-
nil
, normal evaluation of defining forms such asdefun
anddefmacro
instruments them for Edebug. This applies toeval-defun
,eval-region
,eval-buffer
, andeval-current-buffer
.Use the command M-x edebug-all-defs to toggle the value of this option. See Instrumenting.
If this is non-
nil
, the commandseval-defun
,eval-region
,eval-buffer
, andeval-current-buffer
instrument all forms, even those that don't define anything. This doesn't apply to loading or evaluations in the minibuffer.Use the command M-x edebug-all-forms to toggle the value of this option. See Instrumenting.
When this is non-
nil
, all macro arguments will be instrumented in the generated code. For any macro, anedebug-form-spec
overrides this option. So to specify exceptions for macros that have some arguments evaluated and some not, usedef-edebug-spec
to specify anedebug-form-spec
.
If this is non-
nil
, Edebug saves and restores the window configuration. That takes some time, so if your program does not care what happens to the window configurations, it is better to set this variable tonil
.If the value is a list, only the listed windows are saved and restored.
You can use the W command in Edebug to change this variable interactively. See Edebug Display Update.
If this is non-
nil
, Edebug saves and restores point in all displayed buffers.Saving and restoring point in other buffers is necessary if you are debugging code that changes the point of a buffer that is displayed in a non-selected window. If Edebug or the user then selects the window, point in that buffer will move to the window's value of point.
Saving and restoring point in all buffers is expensive, since it requires selecting each window twice, so enable this only if you need it. See Edebug Display Update.
If this variable is non-
nil
, it specifies the initial execution mode for Edebug when it is first activated. Possible values arestep
,next
,go
,Go-nonstop
,trace
,Trace-fast
,continue
, andContinue-fast
.The default value is
step
. This variable can be set interactively with C-x C-a C-m (edebug-set-initial-mode
). See Edebug Execution Modes.
If this is non-
nil
, trace each function entry and exit. Tracing output is displayed in a buffer named *edebug-trace*, one function entry or exit per line, indented by the recursion level.Also see
edebug-tracing
, in Trace Buffer.
If non-
nil
, Edebug tests coverage of all expressions debugged. See Coverage Testing.
If non-
nil
, continue defining or executing any keyboard macro that is executing outside of Edebug. Use this with caution since it is not debugged. See Edebug Execution Modes.
If non-
nil
, the default value ofprint-length
for printing results in Edebug. See Output Variables.
If non-
nil
, the default value ofprint-level
for printing results in Edebug. See Output Variables.
If non-
nil
, the default value ofprint-circle
for printing results in Edebug. See Output Variables.
If non-
nil
, Edebug tries to remove any of its own instrumentation when showing the results of expressions. This is relevant when debugging macros where the results of expressions are themselves instrumented expressions. As a very artificial example, suppose that the example functionfac
has been instrumented, and consider a macro of the form:(defmacro test () "Edebug example." (if (symbol-function 'fac) ...))If you instrument the
test
macro and step through it, then by default the result of thesymbol-function
call has numerousedebug-after
andedebug-before
forms, which can make it difficult to see the actual result. Ifedebug-unwrap-results
is non-nil
, Edebug tries to remove these forms from the result.
Edebug binds
debug-on-error
to this value, ifdebug-on-error
was previouslynil
. See Trapping Errors.
Edebug binds
debug-on-quit
to this value, ifdebug-on-quit
was previouslynil
. See Trapping Errors.
If you change the values of edebug-on-error
or
edebug-on-quit
while Edebug is active, their values won't be used
until the next time Edebug is invoked via a new command.
If non-
nil
, an expression to test for at every stop point. If the result is non-nil
, then break. Errors are ignored. See Global Break Condition.
Number of seconds to pause when a breakpoint is reached and the execution mode is trace or continue. See Edebug Execution Modes.