aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNick Roberts2006-08-15 00:01:16 +0000
committerNick Roberts2006-08-15 00:01:16 +0000
commit9143202cb6465e7e4c9ea5fde254485fccd0e6e0 (patch)
tree7ed78dedab0d2d4671912a23dc5b7c6f758622e1
parent70282fce62e13117947dfb4151e93eeb60251d65 (diff)
downloademacs-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.el25
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)