/[emacs]/emacs/lisp/emacs-lisp/debug.el
ViewVC logotype

Diff of /emacs/lisp/emacs-lisp/debug.el

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.64 by rms, Mon Dec 27 16:17:46 2004 UTC revision 1.65 by monnier, Sat Feb 26 05:28:24 2005 UTC
# Line 1  Line 1 
1  ;;; debug.el --- debuggers and related commands for Emacs  ;;; debug.el --- debuggers and related commands for Emacs
2    
3  ;; Copyright (C) 1985, 1986, 1994, 2001, 2003  Free Software Foundation, Inc.  ;; Copyright (C) 1985, 1986, 1994, 2001, 2003, 2005
4    ;;   Free Software Foundation, Inc.
5    
6  ;; Maintainer: FSF  ;; Maintainer: FSF
7  ;; Keywords: lisp, tools, maint  ;; Keywords: lisp, tools, maint
# Line 188  first will be printed into the backtrace Line 189  first will be printed into the backtrace
189                      (backtrace-debug 3 t))                      (backtrace-debug 3 t))
190                  (debugger-reenable)                  (debugger-reenable)
191                  (message "")                  (message "")
192                  (let ((inhibit-trace t)                  (let ((standard-output nil)
                       (standard-output nil)  
193                        (buffer-read-only t))                        (buffer-read-only t))
194                    (message "")                    (message "")
195                    ;; Make sure we unbind buffer-read-only in the right buffer.                    ;; Make sure we unbind buffer-read-only in the right buffer.
# Line 197  first will be printed into the backtrace Line 197  first will be printed into the backtrace
197                      (recursive-edit)))))                      (recursive-edit)))))
198            ;; Kill or at least neuter the backtrace buffer, so that users            ;; Kill or at least neuter the backtrace buffer, so that users
199            ;; don't try to execute debugger commands in an invalid context.            ;; don't try to execute debugger commands in an invalid context.
200            (if (get-buffer-window debugger-buffer 'visible)            (if (get-buffer-window debugger-buffer 0)
201                ;; Still visible despite the save-window-excursion?  Maybe it                ;; Still visible despite the save-window-excursion?  Maybe it
202                ;; it's in a pop-up frame.  It would be annoying to delete and                ;; it's in a pop-up frame.  It would be annoying to delete and
203                ;; recreate it every time the debugger stops, so instead we'll                ;; recreate it every time the debugger stops, so instead we'll
204                ;; erase it but leave it visible.                ;; erase it and hide it but keep it alive.
205                (save-excursion                (with-current-buffer debugger-buffer
                 (set-buffer debugger-buffer)  
206                  (erase-buffer)                  (erase-buffer)
207                  (fundamental-mode))                  (fundamental-mode)
208                    (with-selected-window (get-buffer-window debugger-buffer 0)
209                      (bury-buffer)))
210              (kill-buffer debugger-buffer))              (kill-buffer debugger-buffer))
211            (set-match-data debugger-outer-match-data)))            (set-match-data debugger-outer-match-data)))
212        ;; Put into effect the modified values of these variables        ;; Put into effect the modified values of these variables
# Line 543  Applies to the frame whose line point is Line 544  Applies to the frame whose line point is
544                                 'read-expression-history)))                                 'read-expression-history)))
545    (debugger-env-macro (eval-expression exp)))    (debugger-env-macro (eval-expression exp)))
546    
547  (defvar debugger-mode-map nil)  (defvar debugger-mode-map
548  (unless debugger-mode-map    (let ((map (make-keymap)))
549    (let ((loop ? ))      (set-keymap-parent map button-buffer-map)
550      (setq debugger-mode-map (make-keymap))      (suppress-keymap map)
551      (set-keymap-parent debugger-mode-map button-buffer-map)      (define-key map "-" 'negative-argument)
552      (suppress-keymap debugger-mode-map)      (define-key map "b" 'debugger-frame)
553      (define-key debugger-mode-map "-" 'negative-argument)      (define-key map "c" 'debugger-continue)
554      (define-key debugger-mode-map "b" 'debugger-frame)      (define-key map "j" 'debugger-jump)
555      (define-key debugger-mode-map "c" 'debugger-continue)      (define-key map "r" 'debugger-return-value)
556      (define-key debugger-mode-map "j" 'debugger-jump)      (define-key map "u" 'debugger-frame-clear)
557      (define-key debugger-mode-map "r" 'debugger-return-value)      (define-key map "d" 'debugger-step-through)
558      (define-key debugger-mode-map "u" 'debugger-frame-clear)      (define-key map "l" 'debugger-list-functions)
559      (define-key debugger-mode-map "d" 'debugger-step-through)      (define-key map "h" 'describe-mode)
560      (define-key debugger-mode-map "l" 'debugger-list-functions)      (define-key map "q" 'top-level)
561      (define-key debugger-mode-map "h" 'describe-mode)      (define-key map "e" 'debugger-eval-expression)
562      (define-key debugger-mode-map "q" 'top-level)      (define-key map " " 'next-line)
563      (define-key debugger-mode-map "e" 'debugger-eval-expression)      (define-key map "R" 'debugger-record-expression)
564      (define-key debugger-mode-map " " 'next-line)      (define-key map "\C-m" 'help-follow)
565      (define-key debugger-mode-map "R" 'debugger-record-expression)      (define-key map [mouse-2] 'push-button)
566      (define-key debugger-mode-map "\C-m" 'help-follow)      map))
     (define-key debugger-mode-map [mouse-2] 'push-button)  
     ))  
   
567    
568  (defcustom debugger-record-buffer "*Debugger-record*"  (defcustom debugger-record-buffer "*Debugger-record*"
569    "*Buffer name for expression values, for \\[debugger-record-expression]."    "*Buffer name for expression values, for \\[debugger-record-expression]."
# Line 616  Complete list of commands: Line 614  Complete list of commands:
614    (setq truncate-lines t)    (setq truncate-lines t)
615    (set-syntax-table emacs-lisp-mode-syntax-table)    (set-syntax-table emacs-lisp-mode-syntax-table)
616    (use-local-map debugger-mode-map)    (use-local-map debugger-mode-map)
617    (run-hooks 'debugger-mode-hook))    (run-mode-hooks 'debugger-mode-hook))
618    
619  ;;;###autoload  ;;;###autoload
620  (defun debug-on-entry (function)  (defun debug-on-entry (function)
# Line 716  If argument is nil or an empty string, c Line 714  If argument is nil or an empty string, c
714  (defun debugger-list-functions ()  (defun debugger-list-functions ()
715    "Display a list of all the functions now set to debug on entry."    "Display a list of all the functions now set to debug on entry."
716    (interactive)    (interactive)
717    (with-output-to-temp-buffer "*Help*"    (require 'help-mode)
718      (if (null debug-function-list)    (help-setup-xref '(debugger-list-functions) (interactive-p))
719          (princ "No debug-on-entry functions now\n")    (with-output-to-temp-buffer (help-buffer)
720        (princ "Functions set to debug on entry:\n\n")      (with-current-buffer standard-output
721        (let ((list debug-function-list))        (if (null debug-function-list)
722          (while list            (princ "No debug-on-entry functions now\n")
723            (prin1 (car list))          (princ "Functions set to debug on entry:\n\n")
724            (terpri)          (dolist (fun debug-function-list)
725            (setq list (cdr list))))            (make-text-button (point) (progn (prin1 fun) (point))
726        (princ "Note: if you have redefined a function, then it may no longer\n")                              'type 'help-function
727        (princ "be set to debug on entry, even if it is in the list."))                              'help-args (list fun))
728      (save-excursion            (terpri))
729        (set-buffer standard-output)          (terpri)
730        (help-mode))))          (princ "Note: if you have redefined a function, then it may no longer\n")
731            (princ "be set to debug on entry, even if it is in the list.")))))
732    
733  (provide 'debug)  (provide 'debug)
734    
735  ;;; arch-tag: b6ec7047-f801-4103-9c63-d69322db9d3b  ;; arch-tag: b6ec7047-f801-4103-9c63-d69322db9d3b
736  ;;; debug.el ends here  ;;; debug.el ends here

Legend:
Removed from v.1.64  
changed lines
  Added in v.1.65

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26