diff options
| author | Nick Roberts | 2004-04-19 23:32:17 +0000 |
|---|---|---|
| committer | Nick Roberts | 2004-04-19 23:32:17 +0000 |
| commit | 95cc50b6896e569cc3db3267fb2f61605be2d226 (patch) | |
| tree | a2d2e7cea09bfc407677d20a9aba669f60d310c8 | |
| parent | d481033acd61e4d957ba9898d2a6254cc0f8e99b (diff) | |
| download | emacs-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.el | 48 |
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 |