Mercurial > emacs
comparison lisp/emacs-lisp/debug.el @ 40583:87996dd441b7
easy source access from the *debugger* buffer
author | Sam Steingold <sds@gnu.org> |
---|---|
date | Wed, 31 Oct 2001 19:32:26 +0000 |
parents | 5385b12ef9a8 |
children | d3f3e805f0fc |
comparison
equal
deleted
inserted
replaced
40582:f520d592859d | 40583:87996dd441b7 |
---|---|
265 (t | 265 (t |
266 (insert ": ") | 266 (insert ": ") |
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. |
274 Enter another debugger on next entry to eval, apply or funcall." | 287 Enter another debugger on next entry to eval, apply or funcall." |
275 (interactive) | 288 (interactive) |
439 nil read-expression-map t | 452 nil read-expression-map t |
440 'read-expression-history))) | 453 'read-expression-history))) |
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) |
449 (define-key debugger-mode-map "-" 'negative-argument) | 461 (define-key debugger-mode-map "-" 'negative-argument) |
450 (define-key debugger-mode-map "b" 'debugger-frame) | 462 (define-key debugger-mode-map "b" 'debugger-frame) |
457 (define-key debugger-mode-map "h" 'describe-mode) | 469 (define-key debugger-mode-map "h" 'describe-mode) |
458 (define-key debugger-mode-map "q" 'top-level) | 470 (define-key debugger-mode-map "q" 'top-level) |
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 |
465 (defcustom debugger-record-buffer "*Debugger-record*" | 479 (defcustom debugger-record-buffer "*Debugger-record*" |
466 "*Buffer name for expression values, for \\[debugger-record-expression]." | 480 "*Buffer name for expression values, for \\[debugger-record-expression]." |