Edebug内では、まるでEdebugが実行されていないかのように式を評価できます。式の評価とプリントに際して、Edebugは不可視になるよう試みます。副作用をもつ式の評価は、Edebugが明示的に保存とリストアを行うデータへの変更を除いて期待したとおり機能するでしょう。このプロセスの詳細は、コンテキスト外部を参照してください。
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
)によって作成された、レキシカル(lexical)にバインドされたシンボルへの参照を含む式の評価をサポートします。