File: edebug.el.html

This minor mode allows programmers to step through Emacs Lisp source code while executing functions. You can also set breakpoints, trace (stopping at each expression), evaluate expressions as if outside Edebug, reevaluate and display a list of expressions, trap errors normally caught by debug, and display a debug style backtrace.

; Minimal Instructions
=====================

First evaluate a defun with C-M-x, then run the function. Step through the code with SPC, mark breakpoints with b, go until a breakpoint is reached with g, and quit execution with q. Use the
"?" command in edebug to describe other commands.
See the Emacs Lisp Reference Manual for more details.

If you wish to change the default edebug global command prefix, change:
(setq global-edebug-prefix "\\C-xX")

Edebug was written by Daniel LaLiberte GTE Labs
40 Sylvan Rd
Waltham, MA 02254
liberte@holonexus.org

Defined variables (45)

edebug-after-instrumentation-functionFunction to run on code after instrumentation for debugging.
edebug-all-defsIf non-nil, evaluating defining forms instruments for Edebug.
edebug-all-formsNon-nil means evaluation of all forms will instrument for Edebug.
edebug-arrow-alistAssociation list of arrows for each edebug mode.
edebug-backtrace-framesStack frames of the current Edebug Backtrace buffer without instrumentation.
edebug-behavior-alistAlist describing the runtime behavior of Edebug’s instrumented code.
edebug-continue-kbd-macroIf non-nil, continue defining or executing any keyboard macro.
edebug-dotted-specSet to t when matching after the dot in a dotted spec list.
edebug-eval-macro-argsNon-nil means all macro call arguments may be evaluated.
edebug-eval-mode-abbrev-tableAbbrev table for ‘edebug-eval-mode’.
edebug-eval-mode-hookHook run after entering Edebug Eval mode.
edebug-eval-mode-mapKeymap for Edebug Eval mode. Superset of Lisp Interaction mode.
edebug-eval-mode-syntax-tableSyntax table for ‘edebug-eval-mode’.
edebug-form-dataA list of entries associating symbols with buffer regions.
edebug-global-break-conditionIf non-nil, an expression to test for at every stop point.
edebug-global-mapGlobal map of edebug commands, available from any buffer.
edebug-global-prefixPrefix key for global edebug commands, available from any buffer.
edebug-inhibit-emacs-lisp-mode-bindingsIf non-nil, inhibit Edebug bindings on the C-x C-a key.
edebug-initial-modeInitial execution mode for Edebug, if non-nil.
edebug-initial-mode-alistAssociation list between commands and the modes they set.
edebug-instrumented-backtrace-framesStack frames of the current Edebug Backtrace buffer with instrumentation.
edebug-lexical-macro-ctxAlist mapping lexically scoped macro names to their debug spec.
edebug-max-depthMaximum recursion depth when instrumenting code.
edebug-menuEdebug menus.
edebug-modeNon-nil if Edebug mode is enabled.
edebug-mode-hookHook run after entering or leaving ‘edebug-mode’.
edebug-mode-menusMenus for Edebug.
edebug-new-definition-functionFunction to call after Edebug wraps a new definition.
edebug-on-errorValue bound to ‘debug-on-error’ while Edebug is active.
edebug-on-quitValue bound to ‘debug-on-quit’ while Edebug is active.
edebug-print-circleIf non-nil, default value of ‘print-circle’ for printing results in Edebug.
edebug-print-lengthIf non-nil, default value of ‘print-length’ for printing results in Edebug.
edebug-print-levelIf non-nil, default value of ‘print-level’ for printing results in Edebug.
edebug-save-displayed-buffer-pointsIf non-nil, save and restore point in all displayed buffers.
edebug-save-windowsIf non-nil, Edebug saves and restores the window configuration.
edebug-setup-hookFunctions to call before edebug is used.
edebug-sit-for-secondsNumber of seconds to pause when execution mode is ‘trace’ or ‘continue’.
edebug-sit-on-breakWhether or not to pause for ‘edebug-sit-for-seconds’ on reaching a break.
edebug-test-coverageIf non-nil, Edebug tests coverage of all expressions debugged.
edebug-traceNon-nil means display a trace of function entry and exit.
edebug-trace-bufferName of the buffer to put trace info in.
edebug-unwrap-resultsNon-nil if Edebug should unwrap results of expressions.
global-edebug-mapGlobal map of edebug commands, available from any buffer.
global-edebug-prefixPrefix key for global edebug commands, available from any buffer.
gud-inhibit-global-bindingsIf non-nil, inhibit Edebug bindings on the C-x C-a key.

Defined functions (229)

cancel-edebug-on-entry(FUNCTION)
copy-edebug--frame(ARG)
edebug(&optional ARG-MODE &rest ARGS)
edebug-&optional-wrapper(CURSOR SPECS REMAINDER-HANDLER)
edebug--add-source-info(FRAME DEF-NAME BEFORE-INDEX AFTER-INDEX)
edebug--called-interactively-skip(I FRAME1 FRAME2)
edebug--concat-name(OLDNAME &rest NEWNAMES)
edebug--display(VALUE OFFSET-INDEX ARG-MODE)
edebug--display-1(VALUE OFFSET-INDEX ARG-MODE)
edebug--enter-trace(FUNCTION ARGS BODY)
edebug--eval-defun(ORIG-FUN EDEBUG-IT)
edebug--form-data-begin(CL-X)
edebug--form-data-begin--cmacro(CL-WHOLE-ARG CL-X)
edebug--form-data-end(CL-X)
edebug--form-data-end--cmacro(CL-WHOLE-ARG CL-X)
edebug--form-data-name(CL-X)
edebug--form-data-name--cmacro(CL-WHOLE-ARG CL-X)
edebug--frame-after-index(CL-X)
edebug--frame-after-index--cmacro(CL-WHOLE-ARG CL-X)
edebug--frame-args(CL-X)
edebug--frame-args--cmacro(CL-WHOLE-ARG CL-X)
edebug--frame-before-index(CL-X)
edebug--frame-before-index--cmacro(CL-WHOLE-ARG CL-X)
edebug--frame-buffer(CL-X)
edebug--frame-buffer--cmacro(CL-WHOLE-ARG CL-X)
edebug--frame-def-name(CL-X)
edebug--frame-def-name--cmacro(CL-WHOLE-ARG CL-X)
edebug--frame-evald(CL-X)
edebug--frame-evald--cmacro(CL-WHOLE-ARG CL-X)
edebug--frame-flags(CL-X)
edebug--frame-flags--cmacro(CL-WHOLE-ARG CL-X)
edebug--frame-fun(CL-X)
edebug--frame-fun--cmacro(CL-WHOLE-ARG CL-X)
edebug--frame-locals(CL-X)
edebug--frame-locals--cmacro(CL-WHOLE-ARG CL-X)
edebug--frame-p(CL-X)
edebug--frame-p--cmacro(CL-WHOLE-ARG CL-X)
edebug--frame-pos(CL-X)
edebug--frame-pos--cmacro(CL-WHOLE-ARG CL-X)
edebug--get-elem-spec(ELEM)
edebug--handle-:-spec-op(OP CURSOR SPEC)
edebug--make-form-data-entry(NAME BEGIN END)
edebug--make-form-data-entry--cmacro(CL-WHOLE-ARG NAME BEGIN END)
edebug--make-frame
edebug--make-frame--cmacro
edebug--match-&-spec-op(OP CURSOR SPECS)
edebug--match-declare-arg(HEAD PF)
edebug--overlay-breakpoints(FUNCTION)
edebug--overlay-breakpoints-remove(START END)
edebug--read(ORIG &optional STREAM)
edebug--recursive-edit(ARG-MODE)
edebug--restore-breakpoints(NAME)
edebug--strip-instrumentation(FRAMES)
edebug--symbol-not-prefixed-p(SYM)
edebug--unwrap*-symbol-function(SYMBOL)
edebug--unwrap-frame(FRAME)
edebug--unwrap1(SEXP HASH-TABLE)
edebug--update-coverage(AFTER-INDEX VALUE)
edebug-Continue-fast-mode()
edebug-Go-nonstop-mode()
edebug-Trace-fast-mode()
edebug-`(EXP)
edebug-after-offset(CURSOR)
edebug-all-defs()
edebug-all-defuns()
edebug-all-forms()
edebug-backtrace-hide-instrumentation()
edebug-backtrace-show-instrumentation()
edebug-basic-spec(SPEC)
edebug-before-offset(CURSOR)
edebug-bounce-point(ARG)
edebug-cancel-edebug-on-entry(FUNCTION)
edebug-cancel-on-entry(FUNCTION)
edebug-changing-windows(&rest BODY)
edebug-clear-coverage(NAME)
edebug-clear-form-data-entry(ENTRY)
edebug-clear-frequency-count(NAME)
edebug-compute-previous-result(PREVIOUS-VALUE)
edebug-continue-mode()
edebug-copy-cursor(CURSOR)
edebug-current-windows(WHICH-WINDOWS)
edebug-cursor-expressions(CURSOR)
edebug-cursor-offsets(CURSOR)
edebug-debugger(OFFSET-INDEX ARG-MODE VALUE)
edebug-default-enter(FUNCTION ARGS BODY)
edebug-defining-form(CURSOR FORM-BEGIN FORM-END SPECLIST)
edebug-defun()
edebug-delete-eval-item()
edebug-display-freq-count()
edebug-empty-cursor(CURSOR)
edebug-enter(FUNC ARGS BODY)
edebug-eval(EXPR)
edebug-eval-defun(EDEBUG-IT)
edebug-eval-display(EVAL-RESULT-LIST)
edebug-eval-display-list(EVAL-RESULT-LIST)
edebug-eval-expression(EXPR)
edebug-eval-last-sexp(&optional NO-TRUNCATE)
edebug-eval-mode()
edebug-eval-print-last-sexp(&optional NO-TRUNCATE)
edebug-eval-redisplay()
edebug-eval-result-list()
edebug-eval-top-level-form()
edebug-fast-after(BEFORE-INDEX AFTER-INDEX VALUE)
edebug-fast-before(BEFORE-INDEX)
edebug-form(CURSOR)
edebug-form-data-symbol()
edebug-format(STRING &rest OBJECTS)
edebug-forms(CURSOR)
edebug-forward-sexp(ARG)
edebug-get-edebug-or-ghost(NAME)
edebug-get-form-data-entry(PNT &optional END-POINT)
edebug-get-spec(SYMBOL)
edebug-go-mode(ARG)
edebug-goto-here()
edebug-help()
edebug-inc-offset(OFFSET)
edebug-instrument-callee()
edebug-instrument-function(FUNC)
edebug-kill-buffer()
edebug-lambda-list-keywordp(OBJECT)
edebug-list-form(CURSOR)
edebug-list-form-args(HEAD CURSOR)
edebug-make-after-form(FORM AFTER-INDEX)
edebug-make-before-and-after-form(BEFORE-INDEX FORM AFTER-INDEX)
edebug-make-enter-wrapper(FORMS)
edebug-make-form-wrapper(CURSOR FORM-BEGIN FORM-END &optional SPECLIST)
edebug-make-top-form-data-entry(NEW-ENTRY)
edebug-mark-marker()
edebug-match(CURSOR SPECS)
edebug-match-arg(CURSOR)
edebug-match-body(CURSOR)
edebug-match-def-body(CURSOR)
edebug-match-def-form(CURSOR)
edebug-match-form(CURSOR)
edebug-match-function(CURSOR)
edebug-match-gate(CURSOR)
edebug-match-list(CURSOR SPECS)
edebug-match-nil(CURSOR)
edebug-match-one-spec(CURSOR SPEC)
edebug-match-place(CURSOR)
edebug-match-sexp(CURSOR)
edebug-match-specs(CURSOR SPECS REMAINDER-HANDLER)
edebug-match-string(CURSOR SPEC)
edebug-match-sublist(CURSOR SPECS)
edebug-match-symbol(CURSOR SYMBOL)
edebug-menu(ARG1)
edebug-message(FORMAT-STRING &rest ARGS)
edebug-mode(&optional ARG)
edebug-modify-breakpoint(FLAG &optional CONDITION TEMPORARY)
edebug-move-cursor(CURSOR)
edebug-new-cursor(EXPRESSIONS OFFSETS)
edebug-new-definition(DEF-NAME)
edebug-next-breakpoint()
edebug-next-mode()
edebug-no-match(CURSOR &rest ARGS)
edebug-on-entry(FUNCTION &optional FLAG)
edebug-outside-excursion(&rest BODY)
edebug-pop-to-backtrace()
edebug-pop-to-buffer(BUFFER &optional WINDOW)
edebug-previous-result()
edebug-prin1-to-string(OBJECT)
edebug-print-trace-after(MSG)
edebug-print-trace-before(MSG)
edebug-read-backquote(STREAM)
edebug-read-comma(STREAM)
edebug-read-list(STREAM)
edebug-read-quote(STREAM)
edebug-read-special(STREAM)
edebug-read-storing-offsets(STREAM)
edebug-read-string(&optional STREAM)
edebug-read-symbol(&optional STREAM)
edebug-read-vector(STREAM)
edebug-remove-instrumentation(FUNCTIONS)
edebug-report-error(VALUE)
edebug-restore-status(VAR STATUS)
edebug-run-fast()
edebug-run-slow()
edebug-safe-eval(EXPR)
edebug-safe-prin1-to-string(VALUE)
edebug-set-breakpoint(ARG)
edebug-set-buffer-points(BUFFER-POINTS)
edebug-set-conditional-breakpoint(ARG CONDITION)
edebug-set-cursor(CURSOR EXPRESSIONS OFFSETS)
edebug-set-form-data-entry(ENTRY NAME BEGIN END)
edebug-set-global-break-condition(EXPRESSION)
edebug-set-initial-mode()
edebug-set-mode(MODE SHORTMSG MSG)
edebug-set-windows(WINDOW-INFO)
edebug-sexps(CURSOR)
edebug-signal(SIGNAL-NAME SIGNAL-DATA)
edebug-slow-after(BEFORE-INDEX AFTER-INDEX VALUE)
edebug-slow-before(BEFORE-INDEX)
edebug-sort-alist(ALIST FUNCTION)
edebug-step-in()
edebug-step-mode()
edebug-step-out()
edebug-step-through-mode()
edebug-stop()
edebug-store-after-offset(POINT)
edebug-store-before-offset(POINT)
edebug-storing-offsets(POINT &rest BODY)
edebug-syntax-error(&rest ARGS)
edebug-temp-display-freq-count()
edebug-toggle(VARIABLE)
edebug-toggle-disable-breakpoint()
edebug-toggle-save-all-windows()
edebug-toggle-save-selected-window()
edebug-toggle-save-windows(ARG)
edebug-top-element(CURSOR)
edebug-top-element-required(CURSOR &rest ERROR)
edebug-top-level-nonstop()
edebug-top-offset(CURSOR)
edebug-trace(FMT &rest ARGS)
edebug-trace-display(BUF-NAME FMT &rest ARGS)
edebug-trace-mode()
edebug-tracing(MSG &rest BODY)
edebug-unload-function()
edebug-unset-breakpoint()
edebug-unset-breakpoints()
edebug-unwrap(SEXP)
edebug-unwrap*(SEXP)
edebug-update-eval-list()
edebug-var-status(VAR)
edebug-view-outside()
edebug-visit-eval-list()
edebug-where()
edebug-window-list()
edebug-window-live-p(OBJECT)
get-edebug-spec(SYMBOL)

Defined faces (2)

edebug-disabled-breakpointFace used to mark disabled breakpoints.
edebug-enabled-breakpointFace used to mark enabled breakpoints.