/[emacs]/emacs/lisp/gdb-ui.el
ViewVC logotype

Diff of /emacs/lisp/gdb-ui.el

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

revision 1.31 by nickrob, Wed May 21 00:49:46 2003 UTC revision 1.32 by nickrob, Wed May 21 20:12:20 2003 UTC
# Line 43  Line 43 
43  ;;  ;;
44  ;;  Known Bugs:  ;;  Known Bugs:
45  ;;  Does not auto-display arrays of structures or structures containing arrays.  ;;  Does not auto-display arrays of structures or structures containing arrays.
46  ;;  On MS Windows, GDB from MINGW does not flush the output from the inferior.  ;;  On MS Windows, Gdb 5.1.1 from MinGW 2.0 does not flush the output from the
47    ;;  inferior.
48    
49  ;;; Code:  ;;; Code:
50    
# Line 170  The following interactive lisp functions Line 171  The following interactive lisp functions
171    (gdb-clear-inferior-io)    (gdb-clear-inferior-io)
172    ;;    ;;
173    (if (eq window-system 'w32)    (if (eq window-system 'w32)
174        (gdb-enqueue-input (list "set set new-console off\n" 'ignore)))        (gdb-enqueue-input (list "set new-console off\n" 'ignore)))
175    (gdb-enqueue-input (list "set height 0\n" 'ignore))    (gdb-enqueue-input (list "set height 0\n" 'ignore))
176    ;; find source file and compilation directory here    ;; find source file and compilation directory here
177    (gdb-enqueue-input (list "server list\n" 'ignore))    (gdb-enqueue-input (list "server list\n" 'ignore))
# Line 517  This filter may simply queue output for Line 518  This filter may simply queue output for
518  ;; any newlines.  ;; any newlines.
519  ;;  ;;
520    
521  (defcustom gud-gdba-command-name "gdb -annotate=2"  (defcustom gud-gdba-command-name
522      (if (eq window-system 'w32)
523          "gdb -annotate=2 -noasync"
524        "gdb -annotate=2")
525    "Default command to execute an executable under the GDB-UI debugger."    "Default command to execute an executable under the GDB-UI debugger."
526    :type 'string    :type 'string
527    :group 'gud)    :group 'gud)
# Line 785  output from the current command if that Line 789  output from the current command if that
789      (let ((start (progn (point)))      (let ((start (progn (point)))
790            (end (progn (end-of-line) (point))))            (end (progn (end-of-line) (point))))
791        (with-current-buffer gdb-expression-buffer-name        (with-current-buffer gdb-expression-buffer-name
792          (setq buffer-read-only nil)          (let ((buffer-read-only nil))
793          (delete-region (point-min) (point-max))            (delete-region (point-min) (point-max))
794          (insert-buffer-substring (gdb-get-buffer            (insert-buffer-substring (gdb-get-buffer
795                                    'gdb-partial-output-buffer)                                      'gdb-partial-output-buffer)
796                                   start end)                                     start end)
797          (insert "\n")))            (insert "\n"))))
798      (goto-char (point-min))      (goto-char (point-min))
799      (re-search-forward "##" nil t)      (re-search-forward "##" nil t)
800      (setq gdb-nesting-level 0)      (setq gdb-nesting-level 0)
# Line 1478  current line." Line 1482  current line."
1482                                   file                                   file
1483                                 (expand-file-name file gdb-cdir))))                                 (expand-file-name file gdb-cdir))))
1484            (goto-line (string-to-number line))))))            (goto-line (string-to-number line))))))
1485    ;; I'll get this to work one day!
1486    ;; (defun gdb-goto-breakpoint ()
1487    ;;   "Display the file in the source buffer at the breakpoint specified on the
1488    ;; current line."
1489    ;;   (interactive)
1490    ;;   (save-excursion
1491    ;;     (let ((eol (progn (end-of-line) (point))))
1492    ;;       (beginning-of-line 1)
1493    ;;       (if (re-search-forward "\\(\\S-*\\):\\([0-9]+\\)" eol t)
1494    ;;        (let ((line (match-string 2))
1495    ;;              (file (match-string 1)))
1496    ;;          (save-selected-window
1497    ;;            (select-window gdb-source-window)
1498    ;;            (switch-to-buffer (find-file-noselect
1499    ;;                               (if (file-exists-p file)
1500    ;;                                   file
1501    ;;                                 (expand-file-name file gdb-cdir))))
1502    ;;            (goto-line (string-to-number line))))))
1503    ;;     (let ((eol (progn (end-of-line) (point))))
1504    ;;       (beginning-of-line 1)
1505    ;;       (if (re-search-forward "<\\(\\S-*?\\)\\(\\+*[0-9]*\\)>" eol t)
1506    ;;        (save-selected-window
1507    ;;          (select-window gdb-source-window)
1508    ;;          (gdb-get-create-buffer 'gdb-assembler-buffer)
1509    ;;          (gdb-enqueue-input
1510    ;;           (list (concat "server disassemble " (match-string 1) "\n")
1511    ;;                 'gdb-assembler-handler))
1512    ;;          (with-current-buffer (gdb-get-buffer 'gdb-assembler-buffer)
1513    ;;            (re-search-forward
1514    ;;             (concat (match-string 1) (match-string 2)))))))))
1515    
1516  (defun gdb-mouse-goto-breakpoint (event)  (defun gdb-mouse-goto-breakpoint (event)
1517    "Display the file in the source buffer at the selected breakpoint."    "Display the file in the source buffer at the selected breakpoint."
# Line 1959  the source buffer." Line 1993  the source buffer."
1993    
1994  ;;; Shared keymap initialization:  ;;; Shared keymap initialization:
1995    
1996  (defun gdb-display-gdb-buffer ()   (let ((menu (make-sparse-keymap "GDB-Frames")))
1997    (interactive)    (define-key gud-menu-map [frames]
1998    (gdb-display-buffer      `(menu-item "GDB-Frames" ,menu :visible (eq gud-minor-mode 'gdba)))
1999     (gdb-get-create-buffer 'gdba)))    (define-key menu [gdb] '("Gdb" . gdb-frame-gdb-buffer))
2000      (define-key menu [locals] '("Locals" . gdb-frame-locals-buffer))
2001      (define-key menu [registers] '("Registers" . gdb-frame-registers-buffer))
2002      (define-key menu [frames] '("Stack" . gdb-frame-stack-buffer))
2003      (define-key menu [breakpoints] '("Breakpoints" . gdb-frame-breakpoints-buffer))
2004      (define-key menu [display] '("Display" . gdb-frame-display-buffer))
2005      (define-key menu [threads] '("Threads" . gdb-frame-threads-buffer))
2006    ;  (define-key menu [assembler] '("Assembler" . gdb-frame-assembler-buffer))
2007    )
2008    
2009  (let ((menu (make-sparse-keymap "GDB-Windows")))  (let ((menu (make-sparse-keymap "GDB-Windows")))
2010    (define-key gud-menu-map [displays]    (define-key gud-menu-map [displays]
# Line 1974  the source buffer." Line 2016  the source buffer."
2016    (define-key menu [breakpoints] '("Breakpoints" . gdb-display-breakpoints-buffer))    (define-key menu [breakpoints] '("Breakpoints" . gdb-display-breakpoints-buffer))
2017    (define-key menu [display] '("Display" . gdb-display-display-buffer))    (define-key menu [display] '("Display" . gdb-display-display-buffer))
2018    (define-key menu [threads] '("Threads" . gdb-display-threads-buffer))    (define-key menu [threads] '("Threads" . gdb-display-threads-buffer))
2019    (define-key menu [assembler] '("Assembler" . gdb-display-assembler-buffer)))  ;  (define-key menu [assembler] '("Assembler" . gdb-display-assembler-buffer))
2020    )
2021    
2022    (let ((menu (make-sparse-keymap "View")))
2023       (define-key gud-menu-map [view] `(menu-item "View" ,menu))
2024    ;  (define-key menu [both] '(menu-item "Both" gdb-view-both
2025    ;              :help "Display both source and assembler"
2026    ;              :button (:radio . (eq gdb-selected-view 'both))))
2027       (define-key menu [assembler] '(menu-item "Assembler" gdb-view-assembler
2028                   :help "Display assembler only"
2029                   :button (:radio . (eq gdb-selected-view 'assembler))))
2030       (define-key menu [source] '(menu-item "Source" gdb-view-source
2031                   :help "Display source only"
2032                   :button (:radio . (eq gdb-selected-view 'source)))))
2033    
2034  (defun gdb-frame-gdb-buffer ()  (defun gdb-frame-gdb-buffer ()
2035    (interactive)    (interactive)
2036    (switch-to-buffer-other-frame    (switch-to-buffer-other-frame
2037     (gdb-get-create-buffer 'gdba)))     (gdb-get-create-buffer 'gdba)))
2038    
2039  (let ((menu (make-sparse-keymap "GDB-Frames"))  (defun gdb-display-gdb-buffer ()
2040        (submenu (make-sparse-keymap "View")))    (interactive)
2041    (define-key gud-menu-map [frames]    (gdb-display-buffer
2042      `(menu-item "GDB-Frames" ,menu :visible (eq gud-minor-mode 'gdba)))     (gdb-get-create-buffer 'gdba)))
   (define-key menu [gdb] '("Gdb" . gdb-frame-gdb-buffer))  
   (define-key menu [locals] '("Locals" . gdb-frame-locals-buffer))  
   (define-key menu [registers] '("Registers" . gdb-frame-registers-buffer))  
   (define-key menu [frames] '("Stack" . gdb-frame-stack-buffer))  
   (define-key menu [breakpoints] '("Breakpoints" . gdb-frame-breakpoints-buffer))  
   (define-key menu [display] '("Display" . gdb-frame-display-buffer))  
   (define-key menu [threads] '("Threads" . gdb-frame-threads-buffer))  
   (define-key menu [view] `(menu-item "View" ,submenu))  
   (define-key submenu [source]  
     '(menu-item "Source" gdb-view-source  
                 :help "Display source only"  
                 :button (:radio . (eq gdb-selected-view 'source))))  
   (define-key submenu [assembler]  
     '(menu-item "Assembler" gdb-view-assembler  
                 :help "Display assembler only"  
                 :button (:radio . (eq gdb-selected-view 'assembler))))  
 ;  (define-key submenu [both]  
 ;    '(menu-item "Both" gdb-view-both  
 ;               :help "Display both source and assembler"  
 ;               :button (:radio . (eq gdb-selected-view 'both))))  
 )  
2043    
2044  (defun gdb-view-source()  (defun gdb-view-source()
2045  (interactive)  (interactive)

Legend:
Removed from v.1.31  
changed lines
  Added in v.1.32

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