aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam Steingold2001-10-31 19:32:26 +0000
committerSam Steingold2001-10-31 19:32:26 +0000
commitcc1bde62e71e44d23f4dbda4b30109193daf2866 (patch)
tree2763e831cc609d12df92c1fd9c55be3e8f982b50
parent05b6e46ca62a8d82fcdf42bbc9b36bd912d9e0c3 (diff)
downloademacs-cc1bde62e71e44d23f4dbda4b30109193daf2866.tar.gz
emacs-cc1bde62e71e44d23f4dbda4b30109193daf2866.zip
easy source access from the *debugger* buffer
-rw-r--r--lisp/ChangeLog6
-rw-r--r--lisp/emacs-lisp/debug.el20
2 files changed, 23 insertions, 3 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index fc0973e346e..942bc059271 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,9 @@
12001-10-31 Sam Steingold <sds@gnu.org>
2
3 * emacs-lisp/debug.el (debugger-make-xrefs): New function.
4 (debugger-setup-buffer): Call it.
5 (debugger-mode-map): Bind RET and mouse-2.
6
12001-10-31 Pavel Jan,Bm(Bk <Pavel@Janik.cz> 72001-10-31 Pavel Jan,Bm(Bk <Pavel@Janik.cz>
2 8
3 * startup.el: Document command line option --no-window-system 9 * startup.el: Document command line option --no-window-system
diff --git a/lisp/emacs-lisp/debug.el b/lisp/emacs-lisp/debug.el
index f21fdc5bfb5..49303ff6293 100644
--- a/lisp/emacs-lisp/debug.el
+++ b/lisp/emacs-lisp/debug.el
@@ -267,7 +267,20 @@ That buffer should be current already."
267 (prin1 (if (eq (car debugger-args) 'nil) 267 (prin1 (if (eq (car debugger-args) 'nil)
268 (cdr debugger-args) debugger-args) 268 (cdr debugger-args) debugger-args)
269 (current-buffer)) 269 (current-buffer))
270 (insert ?\n)))) 270 (insert ?\n)))
271 (debugger-make-xrefs))
272
273(defun debugger-make-xrefs (&optional buffer)
274 "Create cross-references in the debugger buffer."
275 (interactive "b")
276 (save-excursion
277 (set-buffer (or buffer (current-buffer)))
278 (goto-char (point-min))
279 (let ((buffer-read-only nil))
280 (while (re-search-forward "^[* ] (?\\(\\(\\sw\\|\\s_\\)+\\)" nil t)
281 (let* ((sym (intern-soft (match-string 1)))
282 (file (symbol-file sym)))
283 (when file (help-xref-button 1 'help-function-def sym file)))))))
271 284
272(defun debugger-step-through () 285(defun debugger-step-through ()
273 "Proceed, stepping through subexpressions of this expression. 286 "Proceed, stepping through subexpressions of this expression.
@@ -441,8 +454,7 @@ Applies to the frame whose line point is on in the backtrace."
441 (debugger-env-macro (eval-expression exp))) 454 (debugger-env-macro (eval-expression exp)))
442 455
443(defvar debugger-mode-map nil) 456(defvar debugger-mode-map nil)
444(if debugger-mode-map 457(unless debugger-mode-map
445 nil
446 (let ((loop ? )) 458 (let ((loop ? ))
447 (setq debugger-mode-map (make-keymap)) 459 (setq debugger-mode-map (make-keymap))
448 (suppress-keymap debugger-mode-map) 460 (suppress-keymap debugger-mode-map)
@@ -459,6 +471,8 @@ Applies to the frame whose line point is on in the backtrace."
459 (define-key debugger-mode-map "e" 'debugger-eval-expression) 471 (define-key debugger-mode-map "e" 'debugger-eval-expression)
460 (define-key debugger-mode-map " " 'next-line) 472 (define-key debugger-mode-map " " 'next-line)
461 (define-key debugger-mode-map "R" 'debugger-record-expression) 473 (define-key debugger-mode-map "R" 'debugger-record-expression)
474 (define-key debugger-mode-map [RET] 'help-follow)
475 (define-key debugger-mode-map [mouse-2] 'push-button)
462 )) 476 ))
463 477
464 478