diff options
| author | Nick Roberts | 2006-08-15 00:01:16 +0000 |
|---|---|---|
| committer | Nick Roberts | 2006-08-15 00:01:16 +0000 |
| commit | 9143202cb6465e7e4c9ea5fde254485fccd0e6e0 (patch) | |
| tree | 7ed78dedab0d2d4671912a23dc5b7c6f758622e1 | |
| parent | 70282fce62e13117947dfb4151e93eeb60251d65 (diff) | |
| download | emacs-9143202cb6465e7e4c9ea5fde254485fccd0e6e0.tar.gz emacs-9143202cb6465e7e4c9ea5fde254485fccd0e6e0.zip | |
(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.
| -rw-r--r-- | lisp/progmodes/gdb-ui.el | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el index e1378f0e07e..b5334ba5bc5 100644 --- a/lisp/progmodes/gdb-ui.el +++ b/lisp/progmodes/gdb-ui.el | |||
| @@ -115,6 +115,7 @@ 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 |
| @@ -1296,6 +1297,7 @@ not GDB." | |||
| 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 |
| @@ -1330,6 +1332,7 @@ 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 |
| @@ -2037,8 +2040,14 @@ static char *magick[] = { | |||
| 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 ") |
| @@ -2109,6 +2118,8 @@ static char *magick[] = { | |||
| 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) |
| @@ -2912,12 +2923,13 @@ Kills the gdb buffers, and resets variables and the source buffers." | |||
| 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) |
| @@ -3139,8 +3151,7 @@ BUFFER nil or omitted means use the current buffer." | |||
| 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) |