comparison lisp/gdb-ui.el @ 48659:4d69c0f01cc0

(gdb-inferior-io-mode-map): Remove (unused). (gdb-inferior-io-mode): Use define-minor-mode. (gdb-source-info): Don't burp if there's no source file. (gdb-inferior-io-interrupt, gdb-inferior-io-quit) (gdb-inferior-io-stop, gdb-inferior-io-eof) (gdb-display-breakpoints-buffer, gdb-frame-breakpoints-buffer) (gdb-display-stack-buffer, gdb-frame-stack-buffer) (gdb-display-registers-buffer, gdb-frame-registers-buffer) (gdb-display-locals-buffer, gdb-frame-locals-buffer) (gdb-display-display-buffer, gdb-frame-display-buffer) (gdb-display-gdb-buffer, gdb-frame-gdb-buffer) (gdb-display-assembler-buffer, gdb-frame-assembler-buffer): Remove the spurious left over arg from the "big reorg".
author Stefan Monnier <monnier@iro.umontreal.ca>
date Wed, 04 Dec 2002 17:19:32 +0000
parents da382393fb77
children b092bff770ec
comparison
equal deleted inserted replaced
48658:9994fce2e427 48659:4d69c0f01cc0
470 (defun gdb-inferior-io-name () 470 (defun gdb-inferior-io-name ()
471 (concat "*input/output of " 471 (concat "*input/output of "
472 (gdb-instance-target-string) 472 (gdb-instance-target-string)
473 "*")) 473 "*"))
474 474
475 (defvar gdb-inferior-io-mode-map (copy-keymap comint-mode-map))
476 (define-key comint-mode-map "\C-c\C-c" 'gdb-inferior-io-interrupt) 475 (define-key comint-mode-map "\C-c\C-c" 'gdb-inferior-io-interrupt)
477 (define-key comint-mode-map "\C-c\C-z" 'gdb-inferior-io-stop) 476 (define-key comint-mode-map "\C-c\C-z" 'gdb-inferior-io-stop)
478 (define-key comint-mode-map "\C-c\C-\\" 'gdb-inferior-io-quit) 477 (define-key comint-mode-map "\C-c\C-\\" 'gdb-inferior-io-quit)
479 (define-key comint-mode-map "\C-c\C-d" 'gdb-inferior-io-eof) 478 (define-key comint-mode-map "\C-c\C-d" 'gdb-inferior-io-eof)
480 479
481 (defun gdb-inferior-io-mode () 480 (define-derived-mode gdb-inferior-io-mode comint-mode "Debuggee I/O"
482 "Major mode for gdb inferior-io. 481 "Major mode for gdb inferior-io."
483 482 :syntax-table nil :abbrev-table nil
484 \\{comint-mode-map}"
485 ;; We want to use comint because it has various nifty and familiar 483 ;; We want to use comint because it has various nifty and familiar
486 ;; features. We don't need a process, but comint wants one, so create 484 ;; features. We don't need a process, but comint wants one, so create
487 ;; a dummy one. 485 ;; a dummy one.
488 (make-comint (substring (buffer-name) 1 (- (length (buffer-name)) 1)) 486 (make-comint-in-buffer
489 "/bin/cat") 487 (substring (buffer-name) 1 (- (length (buffer-name)) 1))
490 (setq major-mode 'gdb-inferior-io-mode) 488 (current-buffer) "/bin/cat")
491 (setq mode-name "Debuggee I/O")
492 (set (make-local-variable 'gud-minor-mode) 'gdba) 489 (set (make-local-variable 'gud-minor-mode) 'gdba)
493 (set (make-local-variable 'tool-bar-map) gud-tool-bar-map) 490 (set (make-local-variable 'tool-bar-map) gud-tool-bar-map)
494 (setq comint-input-sender 'gdb-inferior-io-sender)) 491 (setq comint-input-sender 'gdb-inferior-io-sender))
495 492
496 (defun gdb-inferior-io-sender (proc string) 493 (defun gdb-inferior-io-sender (proc string)
500 (process-send-string gdb-proc string) 497 (process-send-string gdb-proc string)
501 (process-send-string gdb-proc "\n"))) 498 (process-send-string gdb-proc "\n")))
502 499
503 (defun gdb-inferior-io-interrupt () 500 (defun gdb-inferior-io-interrupt ()
504 "Interrupt the program being debugged." 501 "Interrupt the program being debugged."
505 (interactive (list gdb-proc)) 502 (interactive)
506 (interrupt-process 503 (interrupt-process
507 (get-buffer-process (gdb-get-instance-buffer 'gdba)) comint-ptyp)) 504 (get-buffer-process (gdb-get-instance-buffer 'gdba)) comint-ptyp))
508 505
509 (defun gdb-inferior-io-quit () 506 (defun gdb-inferior-io-quit ()
510 "Send quit signal to the program being debugged." 507 "Send quit signal to the program being debugged."
511 (interactive (list gdb-proc)) 508 (interactive)
512 (quit-process 509 (quit-process
513 (get-buffer-process (gdb-get-instance-buffer 'gdba)) comint-ptyp)) 510 (get-buffer-process (gdb-get-instance-buffer 'gdba)) comint-ptyp))
514 511
515 (defun gdb-inferior-io-stop () 512 (defun gdb-inferior-io-stop ()
516 "Stop the program being debugged." 513 "Stop the program being debugged."
517 (interactive (list gdb-proc)) 514 (interactive)
518 (stop-process 515 (stop-process
519 (get-buffer-process (gdb-get-instance-buffer 'gdba)) comint-ptyp)) 516 (get-buffer-process (gdb-get-instance-buffer 'gdba)) comint-ptyp))
520 517
521 (defun gdb-inferior-io-eof () 518 (defun gdb-inferior-io-eof ()
522 "Send end-of-file to the program being debugged." 519 "Send end-of-file to the program being debugged."
523 (interactive (list gdb-proc)) 520 (interactive)
524 (process-send-eof 521 (process-send-eof
525 (get-buffer-process (gdb-get-instance-buffer 'gdba)))) 522 (get-buffer-process (gdb-get-instance-buffer 'gdba))))
526 523
527 524
528 ;; 525 ;;
1147 gdb-display-value)) 1144 gdb-display-value))
1148 (insert 1145 (insert
1149 (concat indices-string "\t" gdb-display-value "\n")))) 1146 (concat indices-string "\t" gdb-display-value "\n"))))
1150 (setq indices-string "") 1147 (setq indices-string "")
1151 (setq flag t) 1148 (setq flag t)
1152 ; 0<= index < depth, start at right : (- depth 1) 1149 ;; 0<= index < depth, start at right : (- depth 1)
1153 (setq index (- (- depth 1) 1150 (setq index (- (- depth 1)
1154 (- (match-end 2) (match-beginning 2)))) 1151 (- (match-end 2) (match-beginning 2))))
1155 ;don't set for very last brackets 1152 ;;don't set for very last brackets
1156 (if (>= index 0) 1153 (if (>= index 0)
1157 (progn 1154 (progn
1158 (aset indices index (+ 1 (aref indices index))) 1155 (aset indices index (+ 1 (aref indices index)))
1159 (setq num (+ 1 index)) 1156 (setq num (+ 1 index))
1160 (while (< num depth) 1157 (while (< num depth)
1407 1404
1408 ;-put breakpoint icons in relevant margins (even those set in the GUD buffer) 1405 ;-put breakpoint icons in relevant margins (even those set in the GUD buffer)
1409 (defun gdb-info-breakpoints-custom () 1406 (defun gdb-info-breakpoints-custom ()
1410 (let ((flag)(address)) 1407 (let ((flag)(address))
1411 1408
1412 ; remove all breakpoint-icons in source buffers but not assembler buffer 1409 ;; remove all breakpoint-icons in source buffers but not assembler buffer
1413 (let ((buffers (buffer-list))) 1410 (let ((buffers (buffer-list)))
1414 (save-excursion 1411 (save-excursion
1415 (while buffers 1412 (while buffers
1416 (set-buffer (car buffers)) 1413 (set-buffer (car buffers))
1417 (if (and (eq gud-minor-mode 'gdba) 1414 (if (and (eq gud-minor-mode 'gdba)
1478 (save-excursion 1475 (save-excursion
1479 (set-buffer (process-buffer gdb-proc)) 1476 (set-buffer (process-buffer gdb-proc))
1480 (concat "*breakpoints of " (gdb-instance-target-string) "*"))) 1477 (concat "*breakpoints of " (gdb-instance-target-string) "*")))
1481 1478
1482 (defun gdb-display-breakpoints-buffer () 1479 (defun gdb-display-breakpoints-buffer ()
1483 (interactive (list gdb-proc)) 1480 (interactive)
1484 (gdb-display-buffer 1481 (gdb-display-buffer
1485 (gdb-get-create-instance-buffer 'gdb-breakpoints-buffer))) 1482 (gdb-get-create-instance-buffer 'gdb-breakpoints-buffer)))
1486 1483
1487 (defun gdb-frame-breakpoints-buffer () 1484 (defun gdb-frame-breakpoints-buffer ()
1488 (interactive (list gdb-proc)) 1485 (interactive)
1489 (switch-to-buffer-other-frame 1486 (switch-to-buffer-other-frame
1490 (gdb-get-create-instance-buffer 'gdb-breakpoints-buffer))) 1487 (gdb-get-create-instance-buffer 'gdb-breakpoints-buffer)))
1491 1488
1492 (defvar gdb-breakpoints-mode-map nil) 1489 (defvar gdb-breakpoints-mode-map nil)
1493 (setq gdb-breakpoints-mode-map (make-keymap)) 1490 (setq gdb-breakpoints-mode-map (make-keymap))
1602 (set-buffer (process-buffer gdb-proc)) 1599 (set-buffer (process-buffer gdb-proc))
1603 (concat "*stack frames of " 1600 (concat "*stack frames of "
1604 (gdb-instance-target-string) "*"))) 1601 (gdb-instance-target-string) "*")))
1605 1602
1606 (defun gdb-display-stack-buffer () 1603 (defun gdb-display-stack-buffer ()
1607 (interactive (list gdb-proc)) 1604 (interactive)
1608 (gdb-display-buffer 1605 (gdb-display-buffer
1609 (gdb-get-create-instance-buffer 'gdb-stack-buffer))) 1606 (gdb-get-create-instance-buffer 'gdb-stack-buffer)))
1610 1607
1611 (defun gdb-frame-stack-buffer () 1608 (defun gdb-frame-stack-buffer ()
1612 (interactive (list gdb-proc)) 1609 (interactive)
1613 (switch-to-buffer-other-frame 1610 (switch-to-buffer-other-frame
1614 (gdb-get-create-instance-buffer 'gdb-stack-buffer))) 1611 (gdb-get-create-instance-buffer 'gdb-stack-buffer)))
1615 1612
1616 (defvar gdb-frames-mode-map nil) 1613 (defvar gdb-frames-mode-map nil)
1617 (setq gdb-frames-mode-map (make-keymap)) 1614 (setq gdb-frames-mode-map (make-keymap))
1691 (save-excursion 1688 (save-excursion
1692 (set-buffer (process-buffer gdb-proc)) 1689 (set-buffer (process-buffer gdb-proc))
1693 (concat "*registers of " (gdb-instance-target-string) "*"))) 1690 (concat "*registers of " (gdb-instance-target-string) "*")))
1694 1691
1695 (defun gdb-display-registers-buffer () 1692 (defun gdb-display-registers-buffer ()
1696 (interactive (list gdb-proc)) 1693 (interactive)
1697 (gdb-display-buffer 1694 (gdb-display-buffer
1698 (gdb-get-create-instance-buffer 'gdb-registers-buffer))) 1695 (gdb-get-create-instance-buffer 'gdb-registers-buffer)))
1699 1696
1700 (defun gdb-frame-registers-buffer () 1697 (defun gdb-frame-registers-buffer ()
1701 (interactive (list gdb-proc)) 1698 (interactive)
1702 (switch-to-buffer-other-frame 1699 (switch-to-buffer-other-frame
1703 (gdb-get-create-instance-buffer 'gdb-registers-buffer))) 1700 (gdb-get-create-instance-buffer 'gdb-registers-buffer)))
1704 1701
1705 ;; 1702 ;;
1706 ;; Locals buffers 1703 ;; Locals buffers
1764 (save-excursion 1761 (save-excursion
1765 (set-buffer (process-buffer gdb-proc)) 1762 (set-buffer (process-buffer gdb-proc))
1766 (concat "*locals of " (gdb-instance-target-string) "*"))) 1763 (concat "*locals of " (gdb-instance-target-string) "*")))
1767 1764
1768 (defun gdb-display-locals-buffer () 1765 (defun gdb-display-locals-buffer ()
1769 (interactive (list gdb-proc)) 1766 (interactive)
1770 (gdb-display-buffer 1767 (gdb-display-buffer
1771 (gdb-get-create-instance-buffer 'gdb-locals-buffer))) 1768 (gdb-get-create-instance-buffer 'gdb-locals-buffer)))
1772 1769
1773 (defun gdb-frame-locals-buffer () 1770 (defun gdb-frame-locals-buffer ()
1774 (interactive (list gdb-proc)) 1771 (interactive)
1775 (switch-to-buffer-other-frame 1772 (switch-to-buffer-other-frame
1776 (gdb-get-create-instance-buffer 'gdb-locals-buffer))) 1773 (gdb-get-create-instance-buffer 'gdb-locals-buffer)))
1777 ;; 1774 ;;
1778 ;; Display expression buffers (just allow one to start with) 1775 ;; Display expression buffers (just allow one to start with)
1779 ;; 1776 ;;
1824 (save-excursion 1821 (save-excursion
1825 (set-buffer (process-buffer gdb-proc)) 1822 (set-buffer (process-buffer gdb-proc))
1826 (concat "*Displayed expressions of " (gdb-instance-target-string) "*"))) 1823 (concat "*Displayed expressions of " (gdb-instance-target-string) "*")))
1827 1824
1828 (defun gdb-display-display-buffer () 1825 (defun gdb-display-display-buffer ()
1829 (interactive (list gdb-proc)) 1826 (interactive)
1830 (gdb-display-buffer 1827 (gdb-display-buffer
1831 (gdb-get-create-instance-buffer 'gdb-display-buffer))) 1828 (gdb-get-create-instance-buffer 'gdb-display-buffer)))
1832 1829
1833 (defun gdb-frame-display-buffer () 1830 (defun gdb-frame-display-buffer ()
1834 (interactive (list gdb-proc)) 1831 (interactive)
1835 (switch-to-buffer-other-frame 1832 (switch-to-buffer-other-frame
1836 (gdb-get-create-instance-buffer 'gdb-display-buffer))) 1833 (gdb-get-create-instance-buffer 'gdb-display-buffer)))
1837 1834
1838 (defun gdb-toggle-disp-this-line () 1835 (defun gdb-toggle-disp-this-line ()
1839 "Enable/disable the displayed expression on this line." 1836 "Enable/disable the displayed expression on this line."
1968 1965
1969 1966
1970 ;;; Shared keymap initialization: 1967 ;;; Shared keymap initialization:
1971 1968
1972 (defun gdb-display-gdb-buffer () 1969 (defun gdb-display-gdb-buffer ()
1973 (interactive (list gdb-proc)) 1970 (interactive)
1974 (gdb-display-buffer 1971 (gdb-display-buffer
1975 (gdb-get-create-instance-buffer 'gdba))) 1972 (gdb-get-create-instance-buffer 'gdba)))
1976 1973
1977 (defun gdb-make-windows-menu (map) 1974 (defun gdb-make-windows-menu (map)
1978 ;; FIXME: This adds to the DBX, PerlDB, ... menu as well :-( 1975 ;; FIXME: This adds to the DBX, PerlDB, ... menu as well :-(
2000 (define-key gud-minor-mode-map "\C-c\M-\C-b" 'gdb-display-breakpoints-buffer) 1997 (define-key gud-minor-mode-map "\C-c\M-\C-b" 'gdb-display-breakpoints-buffer)
2001 1998
2002 (gdb-make-windows-menu gud-minor-mode-map) 1999 (gdb-make-windows-menu gud-minor-mode-map)
2003 2000
2004 (defun gdb-frame-gdb-buffer () 2001 (defun gdb-frame-gdb-buffer ()
2005 (interactive (list gdb-proc)) 2002 (interactive)
2006 (switch-to-buffer-other-frame 2003 (switch-to-buffer-other-frame
2007 (gdb-get-create-instance-buffer 'gdba))) 2004 (gdb-get-create-instance-buffer 'gdba)))
2008 2005
2009 (defun gdb-make-frames-menu (map) 2006 (defun gdb-make-frames-menu (map)
2010 (define-key map [menu-bar frames] 2007 (define-key map [menu-bar frames]
2142 2139
2143 (defun gdb-source-info () 2140 (defun gdb-source-info ()
2144 "Find the source file where the program starts and displays it with related 2141 "Find the source file where the program starts and displays it with related
2145 buffers." 2142 buffers."
2146 (goto-char (point-min)) 2143 (goto-char (point-min))
2147 (search-forward "directory is ") 2144 (when (search-forward "directory is " nil t)
2148 (looking-at "\\S-*") 2145 (looking-at "\\S-*")
2149 (setq gdb-cdir (match-string 0)) 2146 (setq gdb-cdir (match-string 0))
2150 (search-forward "Located in ") 2147 (search-forward "Located in ")
2151 (looking-at "\\S-*") 2148 (looking-at "\\S-*")
2152 (setq gdb-main-file (match-string 0)) 2149 (setq gdb-main-file (match-string 0))
2153 ;; Make sure we are not in the minibuffer window when we try to delete 2150 ;; Make sure we are not in the minibuffer window when we try to delete
2154 ;; all other windows. 2151 ;; all other windows.
2155 (if (window-minibuffer-p (selected-window)) 2152 (if (window-minibuffer-p (selected-window))
2156 (other-window 1)) 2153 (other-window 1))
2157 (delete-other-windows)
2158 (if gdb-many-windows
2159 (gdb-setup-windows)
2160 (gdb-display-breakpoints-buffer)
2161 (gdb-display-display-buffer)
2162 (gdb-display-stack-buffer)
2163 (delete-other-windows) 2154 (delete-other-windows)
2164 (split-window) 2155 (if gdb-many-windows
2165 (other-window 1) 2156 (gdb-setup-windows)
2166 (switch-to-buffer (gud-find-file gdb-main-file)) 2157 (gdb-display-breakpoints-buffer)
2167 (other-window 1) 2158 (gdb-display-display-buffer)
2168 (setq gdb-source-window (get-buffer-window (current-buffer))))) 2159 (gdb-display-stack-buffer)
2160 (delete-other-windows)
2161 (split-window)
2162 (other-window 1)
2163 (switch-to-buffer (gud-find-file gdb-main-file))
2164 (other-window 1)
2165 (setq gdb-source-window (get-buffer-window (current-buffer))))))
2169 2166
2170 ;from put-image 2167 ;from put-image
2171 (defun put-string (putstring pos &optional string area) 2168 (defun put-string (putstring pos &optional string area)
2172 "Put string PUTSTRING in front of POS in the current buffer. 2169 "Put string PUTSTRING in front of POS in the current buffer.
2173 PUTSTRING is displayed by putting an overlay into the current buffer with a 2170 PUTSTRING is displayed by putting an overlay into the current buffer with a
2363 (save-excursion 2360 (save-excursion
2364 (set-buffer (process-buffer gdb-proc)) 2361 (set-buffer (process-buffer gdb-proc))
2365 (concat "*Machine Code " (gdb-instance-target-string) "*"))) 2362 (concat "*Machine Code " (gdb-instance-target-string) "*")))
2366 2363
2367 (defun gdb-display-assembler-buffer () 2364 (defun gdb-display-assembler-buffer ()
2368 (interactive (list gdb-proc)) 2365 (interactive)
2369 (gdb-display-buffer 2366 (gdb-display-buffer
2370 (gdb-get-create-instance-buffer 'gdb-assembler-buffer))) 2367 (gdb-get-create-instance-buffer 'gdb-assembler-buffer)))
2371 2368
2372 (defun gdb-frame-assembler-buffer () 2369 (defun gdb-frame-assembler-buffer ()
2373 (interactive (list gdb-proc)) 2370 (interactive)
2374 (switch-to-buffer-other-frame 2371 (switch-to-buffer-other-frame
2375 (gdb-get-create-instance-buffer 'gdb-assembler-buffer))) 2372 (gdb-get-create-instance-buffer 'gdb-assembler-buffer)))
2376 2373
2377 (defun gdb-invalidate-frame-and-assembler (&optional ignored) 2374 (defun gdb-invalidate-frame-and-assembler (&optional ignored)
2378 (gdb-invalidate-frames) 2375 (gdb-invalidate-frames)