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))))))))