comparison lisp/progmodes/gdb-ui.el @ 90580:7f3f771c85fa

Merge from emacs--devo--0 Patches applied: * emacs--devo--0 (patch 382-398) - Update from CVS - Update from erc--emacs--22 - Fix ERC bug introduced in last patch - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 123-125) - Update from CVS Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-101
author Miles Bader <miles@gnu.org>
date Wed, 16 Aug 2006 14:08:49 +0000
parents 858cb33ae39d 17d65e848c72
children 6823a91487f2
comparison
equal deleted inserted replaced
90579:c78f05b8f09e 90580:7f3f771c85fa
113 where STATUS is nil (unchanged), `changed' or `out-of-scope', FP the frame 113 where STATUS is nil (unchanged), `changed' or `out-of-scope', FP the frame
114 address for root variables.") 114 address for root variables.")
115 (defvar gdb-main-file nil "Source file from which program execution begins.") 115 (defvar gdb-main-file nil "Source file from which program execution begins.")
116 (defvar gud-old-arrow nil) 116 (defvar gud-old-arrow nil)
117 (defvar gdb-overlay-arrow-position nil) 117 (defvar gdb-overlay-arrow-position nil)
118 (defvar gdb-stack-position nil)
118 (defvar gdb-server-prefix nil) 119 (defvar gdb-server-prefix nil)
119 (defvar gdb-flush-pending-output nil) 120 (defvar gdb-flush-pending-output nil)
120 (defvar gdb-location-alist nil 121 (defvar gdb-location-alist nil
121 "Alist of breakpoint numbers and full filenames.") 122 "Alist of breakpoint numbers and full filenames.")
122 (defvar gdb-active-process nil "GUD tooltips display variable values when t, \ 123 (defvar gdb-active-process nil "GUD tooltips display variable values when t, \
319 :type 'boolean 320 :type 'boolean
320 :group 'gud 321 :group 'gud
321 :version "22.1") 322 :version "22.1")
322 323
323 (defcustom gdb-use-separate-io-buffer nil 324 (defcustom gdb-use-separate-io-buffer nil
324 "Non-nil means display output from the inferior in a separate buffer." 325 "Non-nil means display output from the debugged program in a separate buffer."
325 :type 'boolean 326 :type 'boolean
326 :group 'gud 327 :group 'gud
327 :version "22.1") 328 :version "22.1")
328 329
329 (defun gdb-force-mode-line-update (status) 330 (defun gdb-force-mode-line-update (status)
351 (condition-case nil 352 (condition-case nil
352 (gdb-restore-windows) 353 (gdb-restore-windows)
353 (error nil)))) 354 (error nil))))
354 355
355 (defun gdb-use-separate-io-buffer (arg) 356 (defun gdb-use-separate-io-buffer (arg)
356 "Toggle separate IO for inferior. 357 "Toggle separate IO for debugged program.
357 With arg, use separate IO iff arg is positive." 358 With arg, use separate IO iff arg is positive."
358 (interactive "P") 359 (interactive "P")
359 (setq gdb-use-separate-io-buffer 360 (setq gdb-use-separate-io-buffer
360 (if (null arg) 361 (if (null arg)
361 (not gdb-use-separate-io-buffer) 362 (not gdb-use-separate-io-buffer)
362 (> (prefix-numeric-value arg) 0))) 363 (> (prefix-numeric-value arg) 0)))
363 (message (format "Separate inferior IO %sabled" 364 (message (format "Separate IO %sabled"
364 (if gdb-use-separate-io-buffer "en" "dis"))) 365 (if gdb-use-separate-io-buffer "en" "dis")))
365 (if (and gud-comint-buffer 366 (if (and gud-comint-buffer
366 (buffer-name gud-comint-buffer)) 367 (buffer-name gud-comint-buffer))
367 (condition-case nil 368 (condition-case nil
368 (if gdb-use-separate-io-buffer 369 (if gdb-use-separate-io-buffer
1028 (tool-bar-lines . nil) 1029 (tool-bar-lines . nil)
1029 (menu-bar-lines . nil) 1030 (menu-bar-lines . nil)
1030 (minibuffer . nil))) 1031 (minibuffer . nil)))
1031 1032
1032 (defun gdb-frame-separate-io-buffer () 1033 (defun gdb-frame-separate-io-buffer ()
1033 "Display IO of inferior in a new frame." 1034 "Display IO of debugged program in a new frame."
1034 (interactive) 1035 (interactive)
1035 (if gdb-use-separate-io-buffer 1036 (if gdb-use-separate-io-buffer
1036 (let ((special-display-regexps (append special-display-regexps '(".*"))) 1037 (let ((special-display-regexps (append special-display-regexps '(".*")))
1037 (special-display-frame-alist gdb-frame-parameters)) 1038 (special-display-frame-alist gdb-frame-parameters))
1038 (display-buffer (gdb-get-buffer-create 'gdb-inferior-io))))) 1039 (display-buffer (gdb-get-buffer-create 'gdb-inferior-io)))))
1294 (propertize gdb-inferior-status 'face font-lock-type-face)) 1295 (propertize gdb-inferior-status 'face font-lock-type-face))
1295 (gdb-remove-text-properties) 1296 (gdb-remove-text-properties)
1296 (setq gud-old-arrow gud-overlay-arrow-position) 1297 (setq gud-old-arrow gud-overlay-arrow-position)
1297 (setq gud-overlay-arrow-position nil) 1298 (setq gud-overlay-arrow-position nil)
1298 (setq gdb-overlay-arrow-position nil) 1299 (setq gdb-overlay-arrow-position nil)
1300 (setq gdb-stack-position nil)
1299 (if gdb-use-separate-io-buffer 1301 (if gdb-use-separate-io-buffer
1300 (setq gdb-output-sink 'inferior)))) 1302 (setq gdb-output-sink 'inferior))))
1301 (t 1303 (t
1302 (gdb-resync) 1304 (gdb-resync)
1303 (error "Unexpected `starting' annotation"))))) 1305 (error "Unexpected `starting' annotation")))))
1328 function is used to change the focus of GUD tooltips to #define 1330 function is used to change the focus of GUD tooltips to #define
1329 directives." 1331 directives."
1330 (setq gdb-active-process nil) 1332 (setq gdb-active-process nil)
1331 (setq gud-overlay-arrow-position nil) 1333 (setq gud-overlay-arrow-position nil)
1332 (setq gdb-overlay-arrow-position nil) 1334 (setq gdb-overlay-arrow-position nil)
1335 (setq gdb-stack-position nil)
1333 (setq gud-old-arrow nil) 1336 (setq gud-old-arrow nil)
1334 (setq gdb-inferior-status "exited") 1337 (setq gdb-inferior-status "exited")
1335 (gdb-force-mode-line-update 1338 (gdb-force-mode-line-update
1336 (propertize gdb-inferior-status 'face font-lock-warning-face)) 1339 (propertize gdb-inferior-status 'face font-lock-warning-face))
1337 (gdb-stopping ignored)) 1340 (gdb-stopping ignored))
1774 (save-excursion 1777 (save-excursion
1775 (let ((buffer-read-only nil)) 1778 (let ((buffer-read-only nil))
1776 (goto-char (point-min)) 1779 (goto-char (point-min))
1777 (while (< (point) (- (point-max) 1)) 1780 (while (< (point) (- (point-max) 1))
1778 (forward-line 1) 1781 (forward-line 1)
1779 (if (looking-at "[^\t].*?breakpoint") 1782 (if (looking-at gdb-breakpoint-regexp)
1780 (progn 1783 (progn
1781 (looking-at "\\([0-9]+\\)\\s-+\\S-+\\s-+\\S-+\\s-+\\(.\\)")
1782 (setq bptno (match-string 1)) 1784 (setq bptno (match-string 1))
1783 (setq flag (char-after (match-beginning 2))) 1785 (setq flag (char-after (match-beginning 2)))
1784 (add-text-properties 1786 (add-text-properties
1785 (match-beginning 2) (match-end 2) 1787 (match-beginning 2) (match-end 2)
1786 (if (eq flag ?y) 1788 (if (eq flag ?y)
1787 '(face font-lock-warning-face) 1789 '(face font-lock-warning-face)
1788 '(face font-lock-type-face))) 1790 '(face font-lock-type-face)))
1789 (beginning-of-line) 1791 (let ((bl (point))
1790 (if (re-search-forward " in \\(.*\\) at\\s-+" nil t) 1792 (el (line-end-position)))
1791 (progn 1793 (if (re-search-forward " in \\(.*\\) at\\s-+" el t)
1794 (progn
1795 (add-text-properties
1796 (match-beginning 1) (match-end 1)
1797 '(face font-lock-function-name-face))
1798 (looking-at "\\(\\S-+\\):\\([0-9]+\\)")
1799 (let ((line (match-string 2))
1800 (file (match-string 1)))
1801 (add-text-properties bl el
1802 '(mouse-face highlight
1803 help-echo "mouse-2, RET: visit breakpoint"))
1804 (unless (file-exists-p file)
1805 (setq file (cdr (assoc bptno gdb-location-alist))))
1806 (if (and file
1807 (not (string-equal file "File not found")))
1808 (with-current-buffer
1809 (find-file-noselect file 'nowarn)
1810 (set (make-local-variable 'gud-minor-mode)
1811 'gdba)
1812 (set (make-local-variable 'tool-bar-map)
1813 gud-tool-bar-map)
1814 ;; Only want one breakpoint icon at each
1815 ;; location.
1816 (save-excursion
1817 (goto-line (string-to-number line))
1818 (gdb-put-breakpoint-icon (eq flag ?y) bptno)))
1819 (gdb-enqueue-input
1820 (list
1821 (concat gdb-server-prefix "list "
1822 (match-string-no-properties 1) ":1\n")
1823 'ignore))
1824 (gdb-enqueue-input
1825 (list (concat gdb-server-prefix "info source\n")
1826 `(lambda () (gdb-get-location
1827 ,bptno ,line ,flag)))))))
1828 (if (re-search-forward
1829 "<\\(\\(\\sw\\|[_.]\\)+\\)\\(\\+[0-9]+\\)?>"
1830 el t)
1831 (add-text-properties
1832 (match-beginning 1) (match-end 1)
1833 '(face font-lock-function-name-face))
1834 (end-of-line)
1835 (re-search-backward "\\s-\\(\\S-*\\)"
1836 bl t)
1792 (add-text-properties 1837 (add-text-properties
1793 (match-beginning 1) (match-end 1) 1838 (match-beginning 1) (match-end 1)
1794 '(face font-lock-function-name-face)) 1839 '(face font-lock-variable-name-face)))))))
1795 (looking-at "\\(\\S-+\\):\\([0-9]+\\)")
1796 (let ((line (match-string 2))
1797 (file (match-string 1)))
1798 (add-text-properties (line-beginning-position)
1799 (line-end-position)
1800 '(mouse-face highlight
1801 help-echo "mouse-2, RET: visit breakpoint"))
1802 (unless (file-exists-p file)
1803 (setq file (cdr (assoc bptno gdb-location-alist))))
1804 (if (and file
1805 (not (string-equal file "File not found")))
1806 (with-current-buffer
1807 (find-file-noselect file 'nowarn)
1808 (set (make-local-variable 'gud-minor-mode)
1809 'gdba)
1810 (set (make-local-variable 'tool-bar-map)
1811 gud-tool-bar-map)
1812 ;; Only want one breakpoint icon at each
1813 ;; location.
1814 (save-excursion
1815 (goto-line (string-to-number line))
1816 (gdb-put-breakpoint-icon (eq flag ?y) bptno)))
1817 (gdb-enqueue-input
1818 (list
1819 (concat gdb-server-prefix "list "
1820 (match-string-no-properties 1) ":1\n")
1821 'ignore))
1822 (gdb-enqueue-input
1823 (list (concat gdb-server-prefix "info source\n")
1824 `(lambda () (gdb-get-location
1825 ,bptno ,line ,flag))))))))))
1826 (end-of-line)))))) 1840 (end-of-line))))))
1827 (if (gdb-get-buffer 'gdb-assembler-buffer) (gdb-assembler-custom))) 1841 (if (gdb-get-buffer 'gdb-assembler-buffer) (gdb-assembler-custom)))
1828 1842
1829 (defun gdb-mouse-set-clear-breakpoint (event) 1843 (defun gdb-mouse-set-clear-breakpoint (event)
1830 "Set/clear breakpoint in left fringe/margin with mouse click." 1844 "Set/clear breakpoint in left fringe/margin with mouse click."
2024 '(mouse-face highlight 2038 '(mouse-face highlight
2025 help-echo "mouse-2, RET: Select frame"))) 2039 help-echo "mouse-2, RET: Select frame")))
2026 (goto-char bl) 2040 (goto-char bl)
2027 (when (looking-at "^#\\([0-9]+\\)") 2041 (when (looking-at "^#\\([0-9]+\\)")
2028 (when (string-equal (match-string 1) gdb-frame-number) 2042 (when (string-equal (match-string 1) gdb-frame-number)
2029 (put-text-property bl (+ bl 4) 2043 (if (> (car (window-fringes)) 0)
2030 'face '(:inverse-video t))) 2044 (progn
2045 (or gdb-stack-position
2046 (setq gdb-stack-position (make-marker)))
2047 (set-marker gdb-stack-position (point)))
2048 (set-marker gdb-stack-position nil)
2049 (put-text-property bl (+ bl 4)
2050 'face '(:inverse-video t))))
2031 (when (re-search-forward 2051 (when (re-search-forward
2032 (concat 2052 (concat
2033 (if (string-equal (match-string 1) "0") "" " in ") 2053 (if (string-equal (match-string 1) "0") "" " in ")
2034 "\\([^ ]+\\) (") el t) 2054 "\\([^ ]+\\) (") el t)
2035 (put-text-property (match-beginning 1) (match-end 1) 2055 (put-text-property (match-beginning 1) (match-end 1)
2096 2116
2097 \\{gdb-frames-mode-map}" 2117 \\{gdb-frames-mode-map}"
2098 (kill-all-local-variables) 2118 (kill-all-local-variables)
2099 (setq major-mode 'gdb-frames-mode) 2119 (setq major-mode 'gdb-frames-mode)
2100 (setq mode-name "Frames") 2120 (setq mode-name "Frames")
2121 (setq gdb-stack-position nil)
2122 (add-to-list 'overlay-arrow-variable-list 'gdb-stack-position)
2101 (setq buffer-read-only t) 2123 (setq buffer-read-only t)
2102 (use-local-map gdb-frames-mode-map) 2124 (use-local-map gdb-frames-mode-map)
2103 (run-mode-hooks 'gdb-frames-mode-hook) 2125 (run-mode-hooks 'gdb-frames-mode-hook)
2104 (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba) 2126 (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba)
2105 'gdb-invalidate-frames 2127 'gdb-invalidate-frames
2547 'help-echo "mouse-1: Decrement address" 2569 'help-echo "mouse-1: Decrement address"
2548 'mouse-face 'mode-line-highlight 2570 'mouse-face 'mode-line-highlight
2549 'local-map 2571 'local-map
2550 (gdb-make-header-line-mouse-map 2572 (gdb-make-header-line-mouse-map
2551 'mouse-1 2573 'mouse-1
2552 #'(lambda () (interactive) 2574 (lambda () (interactive)
2553 (let ((gdb-memory-address 2575 (let ((gdb-memory-address
2554 ;; Let GDB do the arithmetic. 2576 ;; Let GDB do the arithmetic.
2555 (concat 2577 (concat
2556 gdb-memory-address " - " 2578 gdb-memory-address " - "
2557 (number-to-string 2579 (number-to-string
2558 (* gdb-memory-repeat-count 2580 (* gdb-memory-repeat-count
2559 (cond ((string= gdb-memory-unit "b") 1) 2581 (cond ((string= gdb-memory-unit "b") 1)
2560 ((string= gdb-memory-unit "h") 2) 2582 ((string= gdb-memory-unit "h") 2)
2561 ((string= gdb-memory-unit "w") 4) 2583 ((string= gdb-memory-unit "w") 4)
2562 ((string= gdb-memory-unit "g") 8))))))) 2584 ((string= gdb-memory-unit "g") 8)))))))
2563 (gdb-invalidate-memory))))) 2585 (gdb-invalidate-memory)))))
2564 "|" 2586 "|"
2565 (propertize "+" 2587 (propertize "+"
2566 'face font-lock-warning-face 2588 'face font-lock-warning-face
2567 'help-echo "mouse-1: Increment address" 2589 'help-echo "mouse-1: Increment address"
2568 'mouse-face 'mode-line-highlight 2590 'mouse-face 'mode-line-highlight
2569 'local-map (gdb-make-header-line-mouse-map 2591 'local-map (gdb-make-header-line-mouse-map
2570 'mouse-1 2592 'mouse-1
2571 #'(lambda () (interactive) 2593 (lambda () (interactive)
2572 (let ((gdb-memory-address nil)) 2594 (let ((gdb-memory-address nil))
2573 (gdb-invalidate-memory))))) 2595 (gdb-invalidate-memory)))))
2574 "]: " 2596 "]: "
2575 (propertize gdb-memory-address 2597 (propertize gdb-memory-address
2576 'face font-lock-warning-face 2598 'face font-lock-warning-face
2577 'help-echo "mouse-1: Set memory address" 2599 'help-echo "mouse-1: Set memory address"
2578 'mouse-face 'mode-line-highlight 2600 'mouse-face 'mode-line-highlight
2633 "server info locals\n" 2655 "server info locals\n"
2634 gdb-info-locals-handler) 2656 gdb-info-locals-handler)
2635 2657
2636 (defvar gdb-locals-watch-map 2658 (defvar gdb-locals-watch-map
2637 (let ((map (make-sparse-keymap))) 2659 (let ((map (make-sparse-keymap)))
2638 (define-key map "\r" '(lambda () (interactive) 2660 (define-key map "\r" (lambda () (interactive)
2639 (beginning-of-line) 2661 (beginning-of-line)
2640 (gud-watch))) 2662 (gud-watch)))
2641 (define-key map [mouse-2] '(lambda (event) (interactive "e") 2663 (define-key map [mouse-2] (lambda (event) (interactive "e")
2642 (mouse-set-point event) 2664 (mouse-set-point event)
2643 (beginning-of-line) 2665 (beginning-of-line)
2644 (gud-watch))) 2666 (gud-watch)))
2645 map) 2667 map)
2646 "Keymap to create watch expression of a complex data type local variable.") 2668 "Keymap to create watch expression of a complex data type local variable.")
2647 2669
2648 (defconst gdb-struct-string 2670 (defconst gdb-struct-string
2649 (concat (propertize "[struct/union]" 2671 (concat (propertize "[struct/union]"
2762 `(menu-item "GDB-Windows" ,menu 2784 `(menu-item "GDB-Windows" ,menu
2763 :visible (memq gud-minor-mode '(gdbmi gdba)))) 2785 :visible (memq gud-minor-mode '(gdbmi gdba))))
2764 (define-key menu [gdb] '("Gdb" . gdb-display-gdb-buffer)) 2786 (define-key menu [gdb] '("Gdb" . gdb-display-gdb-buffer))
2765 (define-key menu [threads] '("Threads" . gdb-display-threads-buffer)) 2787 (define-key menu [threads] '("Threads" . gdb-display-threads-buffer))
2766 (define-key menu [inferior] 2788 (define-key menu [inferior]
2767 '(menu-item "Inferior IO" gdb-display-separate-io-buffer 2789 '(menu-item "Separate IO" gdb-display-separate-io-buffer
2768 :enable gdb-use-separate-io-buffer)) 2790 :enable gdb-use-separate-io-buffer))
2769 (define-key menu [memory] '("Memory" . gdb-display-memory-buffer)) 2791 (define-key menu [memory] '("Memory" . gdb-display-memory-buffer))
2770 (define-key menu [registers] '("Registers" . gdb-display-registers-buffer)) 2792 (define-key menu [registers] '("Registers" . gdb-display-registers-buffer))
2771 (define-key menu [disassembly] 2793 (define-key menu [disassembly]
2772 '("Disassembly" . gdb-display-assembler-buffer)) 2794 '("Disassembly" . gdb-display-assembler-buffer))
2781 :visible (memq gud-minor-mode '(gdbmi gdba)))) 2803 :visible (memq gud-minor-mode '(gdbmi gdba))))
2782 (define-key menu [gdb] '("Gdb" . gdb-frame-gdb-buffer)) 2804 (define-key menu [gdb] '("Gdb" . gdb-frame-gdb-buffer))
2783 (define-key menu [threads] '("Threads" . gdb-frame-threads-buffer)) 2805 (define-key menu [threads] '("Threads" . gdb-frame-threads-buffer))
2784 (define-key menu [memory] '("Memory" . gdb-frame-memory-buffer)) 2806 (define-key menu [memory] '("Memory" . gdb-frame-memory-buffer))
2785 (define-key menu [inferior] 2807 (define-key menu [inferior]
2786 '(menu-item "Inferior IO" gdb-frame-separate-io-buffer 2808 '(menu-item "Separate IO" gdb-frame-separate-io-buffer
2787 :enable gdb-use-separate-io-buffer)) 2809 :enable gdb-use-separate-io-buffer))
2788 (define-key menu [registers] '("Registers" . gdb-frame-registers-buffer)) 2810 (define-key menu [registers] '("Registers" . gdb-frame-registers-buffer))
2789 (define-key menu [disassembly] '("Disassembly" . gdb-frame-assembler-buffer)) 2811 (define-key menu [disassembly] '("Disassembly" . gdb-frame-assembler-buffer))
2790 (define-key menu [breakpoints] 2812 (define-key menu [breakpoints]
2791 '("Breakpoints" . gdb-frame-breakpoints-buffer)) 2813 '("Breakpoints" . gdb-frame-breakpoints-buffer))
2800 '(menu-item "Look For Source Frame" gdb-find-source-frame 2822 '(menu-item "Look For Source Frame" gdb-find-source-frame
2801 :visible (eq gud-minor-mode 'gdba) 2823 :visible (eq gud-minor-mode 'gdba)
2802 :help "Toggle look for source frame." 2824 :help "Toggle look for source frame."
2803 :button (:toggle . gdb-find-source-frame))) 2825 :button (:toggle . gdb-find-source-frame)))
2804 (define-key menu [gdb-use-separate-io] 2826 (define-key menu [gdb-use-separate-io]
2805 '(menu-item "Separate Inferior IO" gdb-use-separate-io-buffer 2827 '(menu-item "Separate IO" gdb-use-separate-io-buffer
2806 :visible (eq gud-minor-mode 'gdba) 2828 :visible (eq gud-minor-mode 'gdba)
2807 :help "Toggle separate IO for inferior." 2829 :help "Toggle separate IO for debugged program."
2808 :button (:toggle . gdb-use-separate-io-buffer))) 2830 :button (:toggle . gdb-use-separate-io-buffer)))
2809 (define-key menu [gdb-many-windows] 2831 (define-key menu [gdb-many-windows]
2810 '(menu-item "Display Other Windows" gdb-many-windows 2832 '(menu-item "Display Other Windows" gdb-many-windows
2811 :help "Toggle display of locals, stack and breakpoint information" 2833 :help "Toggle display of locals, stack and breakpoint information"
2812 :button (:toggle . gdb-many-windows))) 2834 :button (:toggle . gdb-many-windows)))
2899 (kill-buffer nil) 2921 (kill-buffer nil)
2900 (gdb-remove-breakpoint-icons (point-min) (point-max) t) 2922 (gdb-remove-breakpoint-icons (point-min) (point-max) t)
2901 (setq gud-minor-mode nil) 2923 (setq gud-minor-mode nil)
2902 (kill-local-variable 'tool-bar-map) 2924 (kill-local-variable 'tool-bar-map)
2903 (kill-local-variable 'gdb-define-alist)))))) 2925 (kill-local-variable 'gdb-define-alist))))))
2904 (when (markerp gdb-overlay-arrow-position) 2926 (setq gdb-overlay-arrow-position nil)
2905 (move-marker gdb-overlay-arrow-position nil)
2906 (setq gdb-overlay-arrow-position nil))
2907 (setq overlay-arrow-variable-list 2927 (setq overlay-arrow-variable-list
2908 (delq 'gdb-overlay-arrow-position overlay-arrow-variable-list)) 2928 (delq 'gdb-overlay-arrow-position overlay-arrow-variable-list))
2909 (setq fringe-indicator-alist '((overlay-arrow . right-triangle))) 2929 (setq fringe-indicator-alist '((overlay-arrow . right-triangle)))
2930 (setq gdb-stack-position nil)
2931 (setq overlay-arrow-variable-list
2932 (delq 'gdb-stack-position overlay-arrow-variable-list))
2910 (if (boundp 'speedbar-frame) (speedbar-timer-fn)) 2933 (if (boundp 'speedbar-frame) (speedbar-timer-fn))
2911 (setq gud-running nil) 2934 (setq gud-running nil)
2912 (setq gdb-active-process nil) 2935 (setq gdb-active-process nil)
2913 (setq gdb-var-list nil) 2936 (setq gdb-var-list nil)
2914 (remove-hook 'after-save-hook 'gdb-create-define-alist t)) 2937 (remove-hook 'after-save-hook 'gdb-create-define-alist t))
3126 (if (string-equal gdb-frame-number "0") 3149 (if (string-equal gdb-frame-number "0")
3127 nil 3150 nil
3128 '((overlay-arrow . hollow-right-triangle)))) 3151 '((overlay-arrow . hollow-right-triangle))))
3129 (or gdb-overlay-arrow-position 3152 (or gdb-overlay-arrow-position
3130 (setq gdb-overlay-arrow-position (make-marker))) 3153 (setq gdb-overlay-arrow-position (make-marker)))
3131 (set-marker gdb-overlay-arrow-position 3154 (set-marker gdb-overlay-arrow-position (point))))))
3132 (point) (current-buffer))))))
3133 ;; remove all breakpoint-icons in assembler buffer before updating. 3155 ;; remove all breakpoint-icons in assembler buffer before updating.
3134 (gdb-remove-breakpoint-icons (point-min) (point-max)))) 3156 (gdb-remove-breakpoint-icons (point-min) (point-max))))
3135 (with-current-buffer (gdb-get-buffer 'gdb-breakpoints-buffer) 3157 (with-current-buffer (gdb-get-buffer 'gdb-breakpoints-buffer)
3136 (goto-char (point-min)) 3158 (goto-char (point-min))
3137 (while (< (point) (- (point-max) 1)) 3159 (while (< (point) (- (point-max) 1))