在 Edebug 内部,你可以像 Edebug 未运行时一样求值表达式。 Edebug 会尽量对表达式的求值和打印保持“不可见”。 会产生副作用的表达式将按预期执行,除非修改的是 Edebug 显式保存和恢复的数据。 关于该过程的细节,See 外部环境。
在 Edebug 外部的上下文中求值表达式 exp(edebug-eval-expression)。
也就是说,Edebug 会尽量减少对求值过程的干扰。
结果会显示在回显区;如果该命令带前缀参数,则会弹出新缓冲区并对结果进行美观打印。
默认情况下,该命令在求值期间会抑制调试器,避免被求值表达式中的错误在现有错误之上再叠加一层。
将用户选项 debug-allow-recursive-debug 设置为非nil 可以取消这一行为。
在 Edebug 自身的上下文中求值表达式 exp(eval-expression)。
在 Edebug 外部的上下文中求值光标前的表达式(edebug-eval-last-sexp)。
使用前缀参数 0(C-u 0 C-x C-e)时,不截断长内容(如字符串和列表)。
其他前缀参数会将值在独立缓冲区中美观打印。
Edebug 支持对包含词法绑定符号的表达式求值,这些符号由 cl.el 中的以下结构创建:
lexical-let、macrolet 和 symbol-macrolet。