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]."