aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNick Roberts2004-04-19 23:32:17 +0000
committerNick Roberts2004-04-19 23:32:17 +0000
commit95cc50b6896e569cc3db3267fb2f61605be2d226 (patch)
treea2d2e7cea09bfc407677d20a9aba669f60d310c8
parentd481033acd61e4d957ba9898d2a6254cc0f8e99b (diff)
downloademacs-95cc50b6896e569cc3db3267fb2f61605be2d226.tar.gz
emacs-95cc50b6896e569cc3db3267fb2f61605be2d226.zip
(gdb-frame-parameters): New constant.
(gdb-frame-breakpoints-buffer, gdb-frame-stack-buffer) (gdb-frame-threads-buffer, gdb-frame-registers-buffer) (gdb-frame-locals-buffer, gdb-frame-gdb-buffer) (gdb-frame-assembler-buffer): Improve behaviour with multiple frames. (gdb-display-buffer): Extend search to all visible frames.
-rw-r--r--lisp/progmodes/gdb-ui.el48
1 files changed, 31 insertions, 17 deletions
diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el
index b33f8f3f239..fb5a6757a49 100644
--- a/lisp/progmodes/gdb-ui.el
+++ b/lisp/progmodes/gdb-ui.el
@@ -1,6 +1,6 @@
1;;; gdb-ui.el --- User Interface for running GDB 1;;; gdb-ui.el --- User Interface for running GDB
2 2
3;; Author: Nick Roberts <nick@nick.uklinux.net> 3;; Author: Nick Roberts <nickrob@gnu.org>
4;; Maintainer: FSF 4;; Maintainer: FSF
5;; Keywords: unix, tools 5;; Keywords: unix, tools
6 6
@@ -1141,10 +1141,18 @@ static char *magick[] = {
1141 (gdb-display-buffer 1141 (gdb-display-buffer
1142 (gdb-get-create-buffer 'gdb-breakpoints-buffer))) 1142 (gdb-get-create-buffer 'gdb-breakpoints-buffer)))
1143 1143
1144(defconst gdb-frame-parameters
1145 '((height . 12) (width . 60)
1146 (unsplittable . t)
1147 (tool-bar-lines . nil)
1148 (menu-bar-lines . nil)
1149 (minibuffer . nil)))
1150
1144(defun gdb-frame-breakpoints-buffer () 1151(defun gdb-frame-breakpoints-buffer ()
1145 (interactive) 1152 (interactive)
1146 (switch-to-buffer-other-frame 1153 (select-frame (make-frame gdb-frame-parameters))
1147 (gdb-get-create-buffer 'gdb-breakpoints-buffer))) 1154 (switch-to-buffer (gdb-get-create-buffer 'gdb-breakpoints-buffer))
1155 (set-window-dedicated-p (get-buffer-window (current-buffer)) t))
1148 1156
1149(defvar gdb-breakpoints-mode-map 1157(defvar gdb-breakpoints-mode-map
1150 (let ((map (make-sparse-keymap)) 1158 (let ((map (make-sparse-keymap))
@@ -1264,8 +1272,9 @@ current line."
1264 1272
1265(defun gdb-frame-stack-buffer () 1273(defun gdb-frame-stack-buffer ()
1266 (interactive) 1274 (interactive)
1267 (switch-to-buffer-other-frame 1275 (select-frame (make-frame gdb-frame-parameters))
1268 (gdb-get-create-buffer 'gdb-stack-buffer))) 1276 (switch-to-buffer (gdb-get-create-buffer 'gdb-stack-buffer))
1277 (set-window-dedicated-p (get-buffer-window (current-buffer)) t))
1269 1278
1270(defvar gdb-frames-mode-map 1279(defvar gdb-frames-mode-map
1271 (let ((map (make-sparse-keymap))) 1280 (let ((map (make-sparse-keymap)))
@@ -1340,8 +1349,9 @@ the source buffer."
1340 1349
1341(defun gdb-frame-threads-buffer () 1350(defun gdb-frame-threads-buffer ()
1342 (interactive) 1351 (interactive)
1343 (switch-to-buffer-other-frame 1352 (select-frame (make-frame gdb-frame-parameters))
1344 (gdb-get-create-buffer 'gdb-threads-buffer))) 1353 (switch-to-buffer (gdb-get-create-buffer 'gdb-threads-buffer))
1354 (set-window-dedicated-p (get-buffer-window (current-buffer)) t))
1345 1355
1346(defvar gdb-threads-mode-map 1356(defvar gdb-threads-mode-map
1347 (let ((map (make-sparse-keymap))) 1357 (let ((map (make-sparse-keymap)))
@@ -1421,8 +1431,9 @@ the source buffer."
1421 1431
1422(defun gdb-frame-registers-buffer () 1432(defun gdb-frame-registers-buffer ()
1423 (interactive) 1433 (interactive)
1424 (switch-to-buffer-other-frame 1434 (select-frame (make-frame gdb-frame-parameters))
1425 (gdb-get-create-buffer 'gdb-registers-buffer))) 1435 (switch-to-buffer (gdb-get-create-buffer 'gdb-registers-buffer))
1436 (set-window-dedicated-p (get-buffer-window (current-buffer)) t))
1426 1437
1427;; 1438;;
1428;; Locals buffer. 1439;; Locals buffer.
@@ -1492,8 +1503,9 @@ the source buffer."
1492 1503
1493(defun gdb-frame-locals-buffer () 1504(defun gdb-frame-locals-buffer ()
1494 (interactive) 1505 (interactive)
1495 (switch-to-buffer-other-frame 1506 (select-frame (make-frame gdb-frame-parameters))
1496 (gdb-get-create-buffer 'gdb-locals-buffer))) 1507 (switch-to-buffer (gdb-get-create-buffer 'gdb-locals-buffer))
1508 (set-window-dedicated-p (get-buffer-window (current-buffer)) t))
1497 1509
1498 1510
1499;;;; Window management 1511;;;; Window management
@@ -1514,7 +1526,7 @@ the source buffer."
1514 (set-window-dedicated-p win t)))) 1526 (set-window-dedicated-p win t))))
1515 (setq answer (get-buffer-window buf)) 1527 (setq answer (get-buffer-window buf))
1516 (if (not answer) 1528 (if (not answer)
1517 (let ((window (get-lru-window))) 1529 (let ((window (get-lru-window 'visible)))
1518 (if window 1530 (if window
1519 (progn 1531 (progn
1520 (set-window-buffer window buf) 1532 (set-window-buffer window buf)
@@ -1525,7 +1537,7 @@ the source buffer."
1525 (if (eq gud-comint-buffer (window-buffer win)) 1537 (if (eq gud-comint-buffer (window-buffer win))
1526 (set-window-dedicated-p win nil))))) 1538 (set-window-dedicated-p win nil)))))
1527 (if must-split 1539 (if must-split
1528 (let* ((largest (get-largest-window)) 1540 (let* ((largest (get-largest-window 'visible))
1529 (cur-size (window-height largest)) 1541 (cur-size (window-height largest))
1530 (new-size (and size (< size cur-size) (- cur-size size)))) 1542 (new-size (and size (< size cur-size) (- cur-size size))))
1531 (setq answer (split-window largest new-size)) 1543 (setq answer (split-window largest new-size))
@@ -1590,8 +1602,9 @@ the source buffer."
1590 1602
1591(defun gdb-frame-gdb-buffer () 1603(defun gdb-frame-gdb-buffer ()
1592 (interactive) 1604 (interactive)
1593 (switch-to-buffer-other-frame 1605 (select-frame (make-frame gdb-frame-parameters))
1594 (gdb-get-create-buffer 'gdba))) 1606 (switch-to-buffer (gdb-get-create-buffer 'gdba))
1607 (set-window-dedicated-p (get-buffer-window (current-buffer)) t))
1595 1608
1596(defun gdb-display-gdb-buffer () 1609(defun gdb-display-gdb-buffer ()
1597 (interactive) 1610 (interactive)
@@ -1920,8 +1933,9 @@ BUFFER nil or omitted means use the current buffer."
1920 1933
1921(defun gdb-frame-assembler-buffer () 1934(defun gdb-frame-assembler-buffer ()
1922 (interactive) 1935 (interactive)
1923 (switch-to-buffer-other-frame 1936 (select-frame (make-frame gdb-frame-parameters))
1924 (gdb-get-create-buffer 'gdb-assembler-buffer))) 1937 (switch-to-buffer (gdb-get-create-buffer 'gdb-assembler-buffer))
1938 (set-window-dedicated-p (get-buffer-window (current-buffer)) t))
1925 1939
1926;; modified because if gdb-current-address has changed value a new command 1940;; modified because if gdb-current-address has changed value a new command
1927;; must be enqueued to update the buffer with the new output 1941;; must be enqueued to update the buffer with the new output