Mercurial > emacs
comparison lisp/progmodes/gdb-ui.el @ 72392:17d65e848c72
(gdb-info-stack-custom): Indicate selected frame with fringe arrow.
Suggested by Simon Marshall <simon.marshall@misys.com>.
(gdb-stack-position): New variable.
(gdb-starting, gdb-exited): Reset gdb-stack-position to nil.
(gdb-frames-mode): Set gdb-stack-position to nil. Add to
overlay-arrow-variable-list
(gdb-reset): Delete gdb-stack-position from above list.
author | Nick Roberts <nickrob@snap.net.nz> |
---|---|
date | Tue, 15 Aug 2006 00:01:16 +0000 |
parents | 37cc9e9df5a4 |
children | ae19dce6b114 7f3f771c85fa |
comparison
equal
deleted
inserted
replaced
72391:b2e68179adaa | 72392:17d65e848c72 |
---|---|
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, \ |
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)) |
2035 '(mouse-face highlight | 2038 '(mouse-face highlight |
2036 help-echo "mouse-2, RET: Select frame"))) | 2039 help-echo "mouse-2, RET: Select frame"))) |
2037 (goto-char bl) | 2040 (goto-char bl) |
2038 (when (looking-at "^#\\([0-9]+\\)") | 2041 (when (looking-at "^#\\([0-9]+\\)") |
2039 (when (string-equal (match-string 1) gdb-frame-number) | 2042 (when (string-equal (match-string 1) gdb-frame-number) |
2040 (put-text-property bl (+ bl 4) | 2043 (if (> (car (window-fringes)) 0) |
2041 '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)))) | |
2042 (when (re-search-forward | 2051 (when (re-search-forward |
2043 (concat | 2052 (concat |
2044 (if (string-equal (match-string 1) "0") "" " in ") | 2053 (if (string-equal (match-string 1) "0") "" " in ") |
2045 "\\([^ ]+\\) (") el t) | 2054 "\\([^ ]+\\) (") el t) |
2046 (put-text-property (match-beginning 1) (match-end 1) | 2055 (put-text-property (match-beginning 1) (match-end 1) |
2107 | 2116 |
2108 \\{gdb-frames-mode-map}" | 2117 \\{gdb-frames-mode-map}" |
2109 (kill-all-local-variables) | 2118 (kill-all-local-variables) |
2110 (setq major-mode 'gdb-frames-mode) | 2119 (setq major-mode 'gdb-frames-mode) |
2111 (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) | |
2112 (setq buffer-read-only t) | 2123 (setq buffer-read-only t) |
2113 (use-local-map gdb-frames-mode-map) | 2124 (use-local-map gdb-frames-mode-map) |
2114 (run-mode-hooks 'gdb-frames-mode-hook) | 2125 (run-mode-hooks 'gdb-frames-mode-hook) |
2115 (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) |
2116 'gdb-invalidate-frames | 2127 'gdb-invalidate-frames |
2910 (kill-buffer nil) | 2921 (kill-buffer nil) |
2911 (gdb-remove-breakpoint-icons (point-min) (point-max) t) | 2922 (gdb-remove-breakpoint-icons (point-min) (point-max) t) |
2912 (setq gud-minor-mode nil) | 2923 (setq gud-minor-mode nil) |
2913 (kill-local-variable 'tool-bar-map) | 2924 (kill-local-variable 'tool-bar-map) |
2914 (kill-local-variable 'gdb-define-alist)))))) | 2925 (kill-local-variable 'gdb-define-alist)))))) |
2915 (when (markerp gdb-overlay-arrow-position) | 2926 (setq gdb-overlay-arrow-position nil) |
2916 (move-marker gdb-overlay-arrow-position nil) | |
2917 (setq gdb-overlay-arrow-position nil)) | |
2918 (setq overlay-arrow-variable-list | 2927 (setq overlay-arrow-variable-list |
2919 (delq 'gdb-overlay-arrow-position overlay-arrow-variable-list)) | 2928 (delq 'gdb-overlay-arrow-position overlay-arrow-variable-list)) |
2920 (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)) | |
2921 (if (boundp 'speedbar-frame) (speedbar-timer-fn)) | 2933 (if (boundp 'speedbar-frame) (speedbar-timer-fn)) |
2922 (setq gud-running nil) | 2934 (setq gud-running nil) |
2923 (setq gdb-active-process nil) | 2935 (setq gdb-active-process nil) |
2924 (setq gdb-var-list nil) | 2936 (setq gdb-var-list nil) |
2925 (remove-hook 'after-save-hook 'gdb-create-define-alist t)) | 2937 (remove-hook 'after-save-hook 'gdb-create-define-alist t)) |
3137 (if (string-equal gdb-frame-number "0") | 3149 (if (string-equal gdb-frame-number "0") |
3138 nil | 3150 nil |
3139 '((overlay-arrow . hollow-right-triangle)))) | 3151 '((overlay-arrow . hollow-right-triangle)))) |
3140 (or gdb-overlay-arrow-position | 3152 (or gdb-overlay-arrow-position |
3141 (setq gdb-overlay-arrow-position (make-marker))) | 3153 (setq gdb-overlay-arrow-position (make-marker))) |
3142 (set-marker gdb-overlay-arrow-position | 3154 (set-marker gdb-overlay-arrow-position (point)))))) |
3143 (point) (current-buffer)))))) | |
3144 ;; remove all breakpoint-icons in assembler buffer before updating. | 3155 ;; remove all breakpoint-icons in assembler buffer before updating. |
3145 (gdb-remove-breakpoint-icons (point-min) (point-max)))) | 3156 (gdb-remove-breakpoint-icons (point-min) (point-max)))) |
3146 (with-current-buffer (gdb-get-buffer 'gdb-breakpoints-buffer) | 3157 (with-current-buffer (gdb-get-buffer 'gdb-breakpoints-buffer) |
3147 (goto-char (point-min)) | 3158 (goto-char (point-min)) |
3148 (while (< (point) (- (point-max) 1)) | 3159 (while (< (point) (- (point-max) 1)) |