[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r105844: * lisp/emacs-lisp/debug.el (
From: |
Stefan Monnier |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r105844: * lisp/emacs-lisp/debug.el (debugger-args): Give it a docstring. |
Date: |
Mon, 19 Sep 2011 17:14:23 -0400 |
User-agent: |
Bazaar (2.3.1) |
------------------------------------------------------------
revno: 105844
committer: Stefan Monnier <address@hidden>
branch nick: trunk
timestamp: Mon 2011-09-19 17:14:23 -0400
message:
* lisp/emacs-lisp/debug.el (debugger-args): Give it a docstring.
(debugger-return-value): Signal an error if the debugging context does
not await any return value.
modified:
lisp/ChangeLog
lisp/emacs-lisp/debug.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog 2011-09-19 19:27:30 +0000
+++ b/lisp/ChangeLog 2011-09-19 21:14:23 +0000
@@ -1,5 +1,9 @@
2011-09-19 Stefan Monnier <address@hidden>
+ * emacs-lisp/debug.el (debugger-args): Give it a docstring.
+ (debugger-return-value): Signal an error if the debugging context does
+ not await any return value.
+
* ps-mule.el (ps-mule-plot-string): Don't inf-loop (bug#5108).
* image-mode.el (image-toggle-display-text)
(image-toggle-display-image): Stay away from evil `intangible'.
=== modified file 'lisp/emacs-lisp/debug.el'
--- a/lisp/emacs-lisp/debug.el 2011-09-13 21:13:10 +0000
+++ b/lisp/emacs-lisp/debug.el 2011-09-19 21:14:23 +0000
@@ -98,6 +98,16 @@
(defvar inhibit-trace) ;Not yet implemented.
+(defvar debugger-args nil
+ "Arguments with which the debugger was called.
+It is a list expected to take the form (CAUSE . REST)
+where CAUSE can be:
+- debug: called for entry to a flagged function.
+- t: called because of debug-on-next-call.
+- lambda: same thing but via `funcall'.
+- exit: called because of exit of a flagged function.
+- error: called because of `debug-on-error'.")
+
;;;###autoload
(setq debugger 'debug)
;;;###autoload
@@ -296,32 +306,33 @@
(insert "Debugger entered")
;; lambda is for debug-on-call when a function call is next.
;; debug is for debug-on-entry function called.
- (cond ((memq (car debugger-args) '(lambda debug))
- (insert "--entering a function:\n"))
- ;; Exiting a function.
- ((eq (car debugger-args) 'exit)
- (insert "--returning value: ")
- (setq debugger-value (nth 1 debugger-args))
- (prin1 debugger-value (current-buffer))
- (insert ?\n)
- (delete-char 1)
- (insert ? )
- (beginning-of-line))
- ;; Debugger entered for an error.
- ((eq (car debugger-args) 'error)
- (insert "--Lisp error: ")
- (prin1 (nth 1 debugger-args) (current-buffer))
- (insert ?\n))
- ;; debug-on-call, when the next thing is an eval.
- ((eq (car debugger-args) t)
- (insert "--beginning evaluation of function call form:\n"))
- ;; User calls debug directly.
- (t
- (insert ": ")
- (prin1 (if (eq (car debugger-args) 'nil)
- (cdr debugger-args) debugger-args)
- (current-buffer))
- (insert ?\n)))
+ (pcase (car debugger-args)
+ ((or `lambda `debug)
+ (insert "--entering a function:\n"))
+ ;; Exiting a function.
+ (`exit
+ (insert "--returning value: ")
+ (setq debugger-value (nth 1 debugger-args))
+ (prin1 debugger-value (current-buffer))
+ (insert ?\n)
+ (delete-char 1)
+ (insert ? )
+ (beginning-of-line))
+ ;; Debugger entered for an error.
+ (`error
+ (insert "--Lisp error: ")
+ (prin1 (nth 1 debugger-args) (current-buffer))
+ (insert ?\n))
+ ;; debug-on-call, when the next thing is an eval.
+ (`t
+ (insert "--beginning evaluation of function call form:\n"))
+ ;; User calls debug directly.
+ (_
+ (insert ": ")
+ (prin1 (if (eq (car debugger-args) 'nil)
+ (cdr debugger-args) debugger-args)
+ (current-buffer))
+ (insert ?\n)))
;; After any frame that uses eval-buffer,
;; insert a line that states the buffer position it's reading at.
(save-excursion
@@ -439,6 +450,10 @@
This is only useful when the value returned from the debugger
will be used, such as in a debug on exit from a frame."
(interactive "XReturn value (evaluated): ")
+ (when (memq (car debugger-args) '(t lambda error debug))
+ (error "Cannot return a value %s"
+ (if (eq (car debugger-args) 'error)
+ "from an error" "at function entrance")))
(setq debugger-value val)
(princ "Returning " t)
(prin1 debugger-value)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r105844: * lisp/emacs-lisp/debug.el (debugger-args): Give it a docstring.,
Stefan Monnier <=