aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNick Roberts2005-11-03 22:05:53 +0000
committerNick Roberts2005-11-03 22:05:53 +0000
commitbfd21f547c7efd8e53c848790f582eff460612a8 (patch)
tree5515bd9b453a05162e2143dba6f0b85fd5f61b30
parent2b02eddfecf5786ba94eb6128c748e593d05ef66 (diff)
downloademacs-bfd21f547c7efd8e53c848790f582eff460612a8.tar.gz
emacs-bfd21f547c7efd8e53c848790f582eff460612a8.zip
(gud-watch): Use save-selected-window in
case GUD buffer is not visible. (gdb-goto-breakpoint): Try to force display in source buffer. (gdb-frame-gdb-buffer): Copy other similar functions. (gdb-restore-windows): Don't display source if not asked for. (gdb-assembler-buffer-name): Don't capitalise.
-rw-r--r--lisp/progmodes/gdb-ui.el56
1 files changed, 30 insertions, 26 deletions
diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el
index f5f9ad5d4bb..0dfc836c637 100644
--- a/lisp/progmodes/gdb-ui.el
+++ b/lisp/progmodes/gdb-ui.el
@@ -457,21 +457,21 @@ With arg, use separate IO iff arg is positive."
457 "Watch expression at point." 457 "Watch expression at point."
458 (interactive) 458 (interactive)
459 (require 'tooltip) 459 (require 'tooltip)
460 (let ((expr (tooltip-identifier-from-point (point)))) 460 (save-selected-window
461 (if (and (string-equal gdb-current-language "c") 461 (let ((expr (tooltip-identifier-from-point (point))))
462 gdb-use-colon-colon-notation gdb-selected-frame) 462 (if (and (string-equal gdb-current-language "c")
463 (setq expr (concat gdb-selected-frame "::" expr))) 463 gdb-use-colon-colon-notation gdb-selected-frame)
464 (catch 'already-watched 464 (setq expr (concat gdb-selected-frame "::" expr)))
465 (dolist (var gdb-var-list) 465 (catch 'already-watched
466 (if (string-equal expr (car var)) (throw 'already-watched nil))) 466 (dolist (var gdb-var-list)
467 (set-text-properties 0 (length expr) nil expr) 467 (if (string-equal expr (car var)) (throw 'already-watched nil)))
468 (gdb-enqueue-input 468 (set-text-properties 0 (length expr) nil expr)
469 (list 469 (gdb-enqueue-input
470 (if (eq gud-minor-mode 'gdba) 470 (list
471 (concat "server interpreter mi \"-var-create - * " expr "\"\n") 471 (if (eq gud-minor-mode 'gdba)
472 (concat"-var-create - * " expr "\n")) 472 (concat "server interpreter mi \"-var-create - * " expr "\"\n")
473 `(lambda () (gdb-var-create-handler ,expr)))))) 473 (concat"-var-create - * " expr "\n"))
474 (select-window (get-buffer-window gud-comint-buffer 0))) 474 `(lambda () (gdb-var-create-handler ,expr))))))))
475 475
476(defconst gdb-var-create-regexp 476(defconst gdb-var-create-regexp
477 "name=\"\\(.*?\\)\",numchild=\"\\(.*?\\)\",type=\"\\(.*?\\)\"") 477 "name=\"\\(.*?\\)\",numchild=\"\\(.*?\\)\",type=\"\\(.*?\\)\"")
@@ -1582,6 +1582,9 @@ static char *magick[] = {
1582 "Display the breakpoint location specified at current line." 1582 "Display the breakpoint location specified at current line."
1583 (interactive (list last-input-event)) 1583 (interactive (list last-input-event))
1584 (if event (mouse-set-point event)) 1584 (if event (mouse-set-point event))
1585 ;; Hack to stop gdb-goto-breakpoint displaying in GUD buffer.
1586 (let ((window (get-buffer-window gud-comint-buffer)))
1587 (if window (save-selected-window (select-window window))))
1585 (save-excursion 1588 (save-excursion
1586 (beginning-of-line 1) 1589 (beginning-of-line 1)
1587 (if (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba)) 1590 (if (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba))
@@ -2363,9 +2366,9 @@ corresponding to the mode line clicked."
2363(defun gdb-frame-gdb-buffer () 2366(defun gdb-frame-gdb-buffer ()
2364 "Display GUD buffer in a new frame." 2367 "Display GUD buffer in a new frame."
2365 (interactive) 2368 (interactive)
2366 (select-frame (make-frame gdb-frame-parameters)) 2369 (let ((special-display-regexps (append special-display-regexps '(".*")))
2367 (switch-to-buffer (gdb-get-create-buffer 'gdba)) 2370 (special-display-frame-alist gdb-frame-parameters))
2368 (set-window-dedicated-p (selected-window) t)) 2371 (display-buffer (gdb-get-create-buffer 'gdb-stack-buffer))))
2369 2372
2370(defun gdb-display-gdb-buffer () 2373(defun gdb-display-gdb-buffer ()
2371 "Display GUD buffer." 2374 "Display GUD buffer."
@@ -2440,13 +2443,14 @@ This arrangement depends on the value of `gdb-many-windows'."
2440 (delete-other-windows) 2443 (delete-other-windows)
2441 (if gdb-many-windows 2444 (if gdb-many-windows
2442 (gdb-setup-windows) 2445 (gdb-setup-windows)
2443 (split-window) 2446 (when (or gud-last-last-frame gdb-show-main)
2444 (other-window 1) 2447 (split-window)
2445 (switch-to-buffer 2448 (other-window 1)
2446 (if gud-last-last-frame 2449 (switch-to-buffer
2447 (gud-find-file (car gud-last-last-frame)) 2450 (if gud-last-last-frame
2448 (gud-find-file gdb-main-file))) 2451 (gud-find-file (car gud-last-last-frame))
2449 (other-window 1))) 2452 (gud-find-file gdb-main-file)))
2453 (other-window 1))))
2450 2454
2451(defun gdb-reset () 2455(defun gdb-reset ()
2452 "Exit a debugging session cleanly. 2456 "Exit a debugging session cleanly.
@@ -2730,7 +2734,7 @@ BUFFER nil or omitted means use the current buffer."
2730 2734
2731(defun gdb-assembler-buffer-name () 2735(defun gdb-assembler-buffer-name ()
2732 (with-current-buffer gud-comint-buffer 2736 (with-current-buffer gud-comint-buffer
2733 (concat "*Disassembly of " (gdb-get-target-string) "*"))) 2737 (concat "*disassembly of " (gdb-get-target-string) "*")))
2734 2738
2735(defun gdb-display-assembler-buffer () 2739(defun gdb-display-assembler-buffer ()
2736 "Display disassembly view." 2740 "Display disassembly view."