elisp: Edebug Options

 
 17.2.16 Edebug Options
 ----------------------
 
 These options affect the behavior of Edebug:
 
  -- User Option: edebug-setup-hook
      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’ to ‘nil’.  You could use this to load up Edebug
      specifications associated with a package you are using, but only
      when you also use Edebug.  SeeInstrumenting.
 
  -- User Option: edebug-all-defs
      If this is non-‘nil’, normal evaluation of defining forms such as
      ‘defun’ and ‘defmacro’ instruments them for Edebug.  This applies
      to ‘eval-defun’, ‘eval-region’, ‘eval-buffer’, and
      ‘eval-current-buffer’.
 
      Use the command ‘M-x edebug-all-defs’ to toggle the value of this
      option.  SeeInstrumenting.
 
  -- User Option: edebug-all-forms
      If this is non-‘nil’, the commands ‘eval-defun’, ‘eval-region’,
      ‘eval-buffer’, and ‘eval-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.  SeeInstrumenting.
 
  -- User Option: edebug-save-windows
      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 to ‘nil’.
 
      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.  SeeEdebug Display Update.
 
  -- User Option: edebug-save-displayed-buffer-points
      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.  SeeEdebug Display Update.
 
  -- User Option: edebug-initial-mode
      If this variable is non-‘nil’, it specifies the initial execution
      mode for Edebug when it is first activated.  Possible values are
      ‘step’, ‘next’, ‘go’, ‘Go-nonstop’, ‘trace’, ‘Trace-fast’,
      ‘continue’, and ‘Continue-fast’.
 
      The default value is ‘step’.  This variable can be set
      interactively with ‘C-x C-a C-m’ (‘edebug-set-initial-mode’).
      SeeEdebug Execution Modes.
 
  -- User Option: edebug-trace
      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 SeeTrace Buffer.
 
  -- User Option: edebug-test-coverage
      If non-‘nil’, Edebug tests coverage of all expressions debugged.
      SeeCoverage Testing.
 
  -- User Option: edebug-continue-kbd-macro
      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.  SeeEdebug Execution Modes.
 
  -- User Option: edebug-unwrap-results
      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 function ‘fac’ 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 the ‘symbol-function’ call has numerous
      ‘edebug-after’ and ‘edebug-before’ forms, which can make it
      difficult to see the actual result.  If ‘edebug-unwrap-results’ is
      non-‘nil’, Edebug tries to remove these forms from the result.
 
  -- User Option: edebug-on-error
      Edebug binds ‘debug-on-error’ to this value, if ‘debug-on-error’
      was previously ‘nil’.  SeeTrapping Errors.
 
  -- User Option: edebug-on-quit
      Edebug binds ‘debug-on-quit’ to this value, if ‘debug-on-quit’ was
      previously ‘nil’.  SeeTrapping 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.
 
  -- User Option: edebug-global-break-condition
      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.