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
edebug-setup-hookis reset 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 non-
nil, normal evaluation of any defining forms (e.g.defunanddefmacro) will instrument them for Edebug. This applies toeval-defun,eval-region, andeval-current-buffer.Use the command M-x edebug-all-defs to toggle the value of this variable. You may want to make this variable local to each buffer by calling
(make-local-variable 'edebug-all-defs)in youremacs-lisp-mode-hook. See Instrumenting.
If non-
nil, normal evaluation of any forms byeval-defun,eval-region, andeval-current-bufferwill instrument them for Edebug.Use the command M-x edebug-all-forms to toggle the value of this option. See Instrumenting.
If non-
nil, save and restore window configuration on Edebug calls. It takes some time to do this, so if your program does not care what happens to data about windows, you may want to set this variable tonil.If the value is a list, only the listed windows are saved and restored.
M-x edebug-toggle-save-windows may be used to change this variable. This command is bound to W in source code buffers. See Edebug Display Update.
If non-
nil, save and restore point in all displayed buffers. This is necessary if you are debugging code that changes the point of a buffer which is displayed in a non-selected window. If Edebug or the user then selects the window, the buffer's point will be changed to the window's point.This is an expensive operation since it visits each window and therefore each displayed buffer twice for each Edebug activation, so it is best to avoid it if you can. 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. See Edebug Execution Modes.
Non-
nilmeans display a trace of 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.The default value is
nil.Also see
edebug-tracing. See Tracing.
If non-
nil, Edebug tests coverage of all expressions debugged. This is done by comparing the result of each expression with the previous result. Coverage is considered OK if two different results are found. So to sufficiently test the coverage of your code, try to execute it under conditions that evaluate all expressions more than once, and produce different results for each expression.Use M-x edebug-display-freq-count to display the frequency count and coverage information for a definition. 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, bindprint-lengthto this while printing results in Edebug. The default value is50. See Printing in Edebug.
If non-
nil, bindprint-levelto this while printing results in Edebug. The default value is50.
If non-
nil, bindprint-circleto this while printing results in Edebug. The default value isnil.
debug-on-erroris bound to this while Edebug is active. See Trapping Errors.
debug-on-quitis bound to this while Edebug is active. See Trapping Errors.
Non-
nilif Edebug should unwrap results of expressions. This is useful when debugging macros where the results of expressions are instrumented expressions. But don't do this when results might be circular or an infinite loop will result. See Debugging Backquote.
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.