19.2.9 Evaluation

While within Edebug, you can evaluate expressions as if Edebug were not running. Edebug tries to be invisible to the expression’s evaluation and printing. Evaluation of expressions that cause side effects will work as expected, except for changes to data that Edebug explicitly saves and restores. See The Outside Context, for details on this process.

e exp RET

Evaluate expression exp in the context outside of Edebug (edebug-eval-expression). That is, Edebug tries to minimize its interference with the evaluation. The result is shown in the echo area, or, if this command is given a prefix, pop up a new buffer and pretty-print the result there.

By default, this command suppresses the debugger during evaluation, so that an error in the evaluated expression won’t add a new error on top of the existing one. Set the debug-allow-recursive-debug user option to a non-nil value to override this.

M-: exp RET

Evaluate expression exp in the context of Edebug itself (eval-expression).

C-x C-e

Evaluate the expression before point, in the context outside of Edebug (edebug-eval-last-sexp). With the prefix argument of zero (C-u 0 C-x C-e), don’t shorten long items (like strings and lists). Any other prefix will result in the value being pretty-printed in a separate buffer.

Edebug supports evaluation of expressions containing references to lexically bound symbols created by the following constructs in cl.el: lexical-let, macrolet, and symbol-macrolet.