Function: debugger-eval-expression
debugger-eval-expression is an interactive and byte-compiled function
defined in debug.el.gz.
Signature
(debugger-eval-expression EXP &optional NFRAME)
Documentation
Eval an expression, in an environment like that outside the debugger.
The environment used is the one when entering the activation frame at point.
Probably introduced at or before Emacs version 24.4.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/emacs-lisp/debug.el.gz
(defun debugger-eval-expression (exp &optional nframe)
"Eval an expression, in an environment like that outside the debugger.
The environment used is the one when entering the activation frame at point."
(interactive
(list (read--expression "Eval in stack frame: ")))
(let ((nframe (or nframe
(condition-case nil (1+ (debugger-frame-number 'skip-base))
(error 0)))) ;; If on first line.
(base (debugger--backtrace-base)))
(debugger-env-macro
(let ((val (backtrace-eval exp nframe base)))
(prog1
(debugger--print val t)
(let ((str (eval-expression-print-format val)))
(if str (princ str t))))))))