Edebugの実行中であっても、Edebugが動作していないときと同様に式を評価できます。Edebugは、式の評価や出力に影響を与えないよう努めます。副作用を引き起こす式の評価は、Edebugが明示的に保存・復元するデータへの変更を除き、期待通りに動作します。このプロセスの詳細については、外部コンテキストを参照してください。
Edebug 以外のコンテキスト (edebug-eval-expression) で式 exp を評価します。つまり、Edebug は評価への干渉を最小限に抑えようとします。結果は echo
領域に表示されます。また、このコマンドにプレフィックスが指定されている場合は、新しいバッファをポップアップし、そこに結果を見やすく表示します。
デフォルトでは、このコマンドは評価中にデバッガを抑制します。これにより、評価対象の式にエラーが発生しても、既存のエラーの上に新たなエラーが追加されることはありません。この動作を上書きするには、ユーザーオプション
debug-allow-recursive-debug(エラー発生時のデバッガ起動を参照)を nil 以外の値に設定してください。
Edebug自体のコンテキスト(eval-expression)で式 exp を評価する。
Edebug 以外のコンテキスト (edebug-eval-last-sexp)
において、ポイント前の式を評価し、その値をミニバッファに表示します。プレフィックス引数が 0 (C-u 0 C-x
C-e) の場合、edebug-print-length および edebug-print-level のため、値を表示する際に長い項目(文字列やリストなど)を省略しません(Edebug での出力
を参照)。それ以外のプレフィックスを指定すると、値はミニバッファではなく、別のバッファに整形表示されます。
式のリストを対話的に評価するためのその他のEdebug機能については、評価リストバッファを参照してください。
Edebugは、cl-lib.elにおける以下の構文 cl-macrolet および cl-symbol-macrolet
で作成された字句スコープのシンボルへの参照を含む式の評価をサポートしています。