diff options
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/debug.el | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/lisp/emacs-lisp/debug.el b/lisp/emacs-lisp/debug.el index 6e830e75197..462f551142d 100644 --- a/lisp/emacs-lisp/debug.el +++ b/lisp/emacs-lisp/debug.el @@ -104,14 +104,19 @@ first will be printed into the backtrace buffer." (forward-line 1) (point))) (debugger-reenable) + ;; 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:\n") (if (eq (car debugger-args) 'debug) (progn - (backtrace-debug 4 t) + ;; Skip the frames for backtrace-debug, byte-code, + ;; and debug. + (backtrace-debug 3 t) (delete-char 1) (insert ?*) (beginning-of-line)))) + ;; Exiting a function. ((eq (car debugger-args) 'exit) (insert "Return value: ") (setq debugger-value (nth 1 debugger-args)) @@ -120,12 +125,15 @@ first will be printed into the backtrace buffer." (delete-char 1) (insert ? ) (beginning-of-line)) + ;; Debugger entered for an error. ((eq (car debugger-args) 'error) (insert "Signalling: ") (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 (prin1 (if (eq (car debugger-args) 'nil) (cdr debugger-args) debugger-args) |