summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/edebug.el
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2004-03-22 15:27:46 +0000
committerStefan Monnier <monnier@iro.umontreal.ca>2004-03-22 15:27:46 +0000
commite409c5272f067bdd87a0078c234c085786f9ff37 (patch)
tree59016759dec42b053d5422fb8c2b4aea8c35d537 /lisp/emacs-lisp/edebug.el
parentb008007c6a90f2f6f081c1b72395141ab6e56dfa (diff)
downloademacs-e409c5272f067bdd87a0078c234c085786f9ff37.tar.gz
emacs-e409c5272f067bdd87a0078c234c085786f9ff37.tar.bz2
emacs-e409c5272f067bdd87a0078c234c085786f9ff37.zip
(edebug-display): Bring up a debug trace if the source location can't be found.
(edebug-compute-previous-result): Use prin1-char.
Diffstat (limited to 'lisp/emacs-lisp/edebug.el')
-rw-r--r--lisp/emacs-lisp/edebug.el24
1 files changed, 13 insertions, 11 deletions
diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el
index 1ef30a309a3..8a924d045f7 100644
--- a/lisp/emacs-lisp/edebug.el
+++ b/lisp/emacs-lisp/edebug.el
@@ -1,6 +1,6 @@
;;; edebug.el --- a source-level debugger for Emacs Lisp
-;; Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 97, 1999, 2000, 01, 2003
+;; Copyright (C) 1988,89,90,91,92,93,94,95,97,1999,2000,01,03,2004
;; Free Software Foundation, Inc.
;; Author: Daniel LaLiberte <liberte@holonexus.org>
@@ -2509,6 +2509,11 @@ MSG is printed after `::::} '."
(defun edebug-display ()
+ (unless (marker-position edebug-def-mark)
+ ;; The buffer holding the source has been killed.
+ ;; Let's at least show a backtrace so the user can figure out
+ ;; which function we're talking about.
+ (debug))
;; Setup windows for edebug, determine mode, maybe enter recursive-edit.
;; Uses local variables of edebug-enter, edebug-before, edebug-after
;; and edebug-debugger.
@@ -3681,17 +3686,14 @@ Return the result of the last expression."
(edebug-prin1-to-string value)))
(defun edebug-compute-previous-result (edebug-previous-value)
+ (if edebug-unwrap-results
+ (setq edebug-previous-value
+ (edebug-unwrap* edebug-previous-value)))
(setq edebug-previous-result
- (if (and (integerp edebug-previous-value)
- (< edebug-previous-value 256)
- (>= edebug-previous-value 0))
- (format "Result: %s = %s" edebug-previous-value
- (single-key-description edebug-previous-value))
- (if edebug-unwrap-results
- (setq edebug-previous-value
- (edebug-unwrap* edebug-previous-value)))
- (concat "Result: "
- (edebug-safe-prin1-to-string edebug-previous-value)))))
+ (concat "Result: "
+ (edebug-safe-prin1-to-string edebug-previous-value)
+ (let ((name (prin1-char edebug-previous-value)))
+ (if name (concat " = " name))))))
(defun edebug-previous-result ()
"Print the previous result."