コマンド backtrace

(backtrace)
  backtrace()
  eval((backtrace))
  eval-last-sexp(t)
  eval-print-last-sexp()
  call-interactively(eval-print-last-sexp)
  => nil


まんま

(with-output-to-temp-buffer "backtrace-output"
  (let ((var 1))
    (save-excursion
      (setq var (eval '(progn
                         (1+ var)
                         (list 'testing (backtrace))))))))
  => (testing nil)

で、バッファ backtrace-output に

  backtrace()
  (list (quote testing) (backtrace))
  (progn (1+ var) (list (quote testing) (backtrace)))
  eval((progn (1+ var) (list (quote testing) (backtrace))))
  (setq var (eval (quote ...)))
  (save-excursion (setq var (eval ...)))
  (let ((var 1)) (save-excursion (setq var ...)))
  (with-output-to-temp-buffer "backtrace-output" (let (...) (save-excursion ...)))
  eval((with-output-to-temp-buffer "backtrace-output" (let (...) (save-excursion ...))))
  eval-last-sexp(t)
  eval-print-last-sexp()
  call-interactively(eval-print-last-sexp)
  backtrace()
  (list (quote testing) (backtrace))
  (progn (1+ var) (list (quote testing) (backtrace)))
  eval((progn (1+ var) (list (quote testing) (backtrace))))
  (setq var (eval (quote ...)))
  (save-excursion (setq var (eval ...)))
  (let ((var 1)) (save-excursion (setq var ...)))
  (with-output-to-temp-buffer "backtrace-output" (let (...) (save-excursion ...)))
  eval((with-output-to-temp-buffer "backtrace-output" (let (...) (save-excursion ...))))
  eval-last-sexp(t)
  eval-print-last-sexp()
  call-interactively(eval-print-last-sexp)