comparison lisp/progmodes/gdb-ui.el @ 71877:28ec37c2aa2c

(gdb-display-buffer): Check for gdb-source-window. Add dedicated argument. (gdb-display-separate-io-buffer, gdb-append-to-inferior-io) (gdb-display-breakpoints-buffer, gdb-display-stack-buffer) (gdb-display-threads-buffer, gdb-display-memory-buffer) (gdb-display-locals-buffer): Use it.
author Nick Roberts <nickrob@snap.net.nz>
date Thu, 13 Jul 2006 21:56:26 +0000
parents f723aa5cf2de
children 3d39ae4ce1b6 b19aaf4ab0ee 8a8e69664178
comparison
equal deleted inserted replaced
71876:2f32aa94faff 71877:28ec37c2aa2c
1017 (defun gdb-display-separate-io-buffer () 1017 (defun gdb-display-separate-io-buffer ()
1018 "Display IO of debugged program in a separate window." 1018 "Display IO of debugged program in a separate window."
1019 (interactive) 1019 (interactive)
1020 (if gdb-use-separate-io-buffer 1020 (if gdb-use-separate-io-buffer
1021 (gdb-display-buffer 1021 (gdb-display-buffer
1022 (gdb-get-buffer-create 'gdb-inferior-io)))) 1022 (gdb-get-buffer-create 'gdb-inferior-io) t)))
1023 1023
1024 (defconst gdb-frame-parameters 1024 (defconst gdb-frame-parameters
1025 '((height . 14) (width . 80) 1025 '((height . 14) (width . 80)
1026 (unsplittable . t) 1026 (unsplittable . t)
1027 (tool-bar-lines . nil) 1027 (tool-bar-lines . nil)
1554 (defun gdb-append-to-inferior-io (string) 1554 (defun gdb-append-to-inferior-io (string)
1555 (with-current-buffer (gdb-get-buffer-create 'gdb-inferior-io) 1555 (with-current-buffer (gdb-get-buffer-create 'gdb-inferior-io)
1556 (goto-char (point-max)) 1556 (goto-char (point-max))
1557 (insert-before-markers string)) 1557 (insert-before-markers string))
1558 (if (not (string-equal string "")) 1558 (if (not (string-equal string ""))
1559 (gdb-display-buffer (gdb-get-buffer-create 'gdb-inferior-io)))) 1559 (gdb-display-buffer (gdb-get-buffer-create 'gdb-inferior-io) t)))
1560 1560
1561 (defun gdb-clear-inferior-io () 1561 (defun gdb-clear-inferior-io ()
1562 (with-current-buffer (gdb-get-buffer-create 'gdb-inferior-io) 1562 (with-current-buffer (gdb-get-buffer-create 'gdb-inferior-io)
1563 (erase-buffer))) 1563 (erase-buffer)))
1564 1564
1863 1863
1864 (defun gdb-display-breakpoints-buffer () 1864 (defun gdb-display-breakpoints-buffer ()
1865 "Display status of user-settable breakpoints." 1865 "Display status of user-settable breakpoints."
1866 (interactive) 1866 (interactive)
1867 (gdb-display-buffer 1867 (gdb-display-buffer
1868 (gdb-get-buffer-create 'gdb-breakpoints-buffer))) 1868 (gdb-get-buffer-create 'gdb-breakpoints-buffer) t))
1869 1869
1870 (defun gdb-frame-breakpoints-buffer () 1870 (defun gdb-frame-breakpoints-buffer ()
1871 "Display status of user-settable breakpoints in a new frame." 1871 "Display status of user-settable breakpoints in a new frame."
1872 (interactive) 1872 (interactive)
1873 (let ((special-display-regexps (append special-display-regexps '(".*"))) 1873 (let ((special-display-regexps (append special-display-regexps '(".*")))
2039 2039
2040 (defun gdb-display-stack-buffer () 2040 (defun gdb-display-stack-buffer ()
2041 "Display backtrace of current stack." 2041 "Display backtrace of current stack."
2042 (interactive) 2042 (interactive)
2043 (gdb-display-buffer 2043 (gdb-display-buffer
2044 (gdb-get-buffer-create 'gdb-stack-buffer))) 2044 (gdb-get-buffer-create 'gdb-stack-buffer) t))
2045 2045
2046 (defun gdb-frame-stack-buffer () 2046 (defun gdb-frame-stack-buffer ()
2047 "Display backtrace of current stack in a new frame." 2047 "Display backtrace of current stack in a new frame."
2048 (interactive) 2048 (interactive)
2049 (let ((special-display-regexps (append special-display-regexps '(".*"))) 2049 (let ((special-display-regexps (append special-display-regexps '(".*")))
2120 2120
2121 (defun gdb-display-threads-buffer () 2121 (defun gdb-display-threads-buffer ()
2122 "Display IDs of currently known threads." 2122 "Display IDs of currently known threads."
2123 (interactive) 2123 (interactive)
2124 (gdb-display-buffer 2124 (gdb-display-buffer
2125 (gdb-get-buffer-create 'gdb-threads-buffer))) 2125 (gdb-get-buffer-create 'gdb-threads-buffer) t))
2126 2126
2127 (defun gdb-frame-threads-buffer () 2127 (defun gdb-frame-threads-buffer ()
2128 "Display IDs of currently known threads in a new frame." 2128 "Display IDs of currently known threads in a new frame."
2129 (interactive) 2129 (interactive)
2130 (let ((special-display-regexps (append special-display-regexps '(".*"))) 2130 (let ((special-display-regexps (append special-display-regexps '(".*")))
2254 2254
2255 (defun gdb-display-registers-buffer () 2255 (defun gdb-display-registers-buffer ()
2256 "Display integer register contents." 2256 "Display integer register contents."
2257 (interactive) 2257 (interactive)
2258 (gdb-display-buffer 2258 (gdb-display-buffer
2259 (gdb-get-buffer-create 'gdb-registers-buffer))) 2259 (gdb-get-buffer-create 'gdb-registers-buffer) t))
2260 2260
2261 (defun gdb-frame-registers-buffer () 2261 (defun gdb-frame-registers-buffer ()
2262 "Display integer register contents in a new frame." 2262 "Display integer register contents in a new frame."
2263 (interactive) 2263 (interactive)
2264 (let ((special-display-regexps (append special-display-regexps '(".*"))) 2264 (let ((special-display-regexps (append special-display-regexps '(".*")))
2578 2578
2579 (defun gdb-display-memory-buffer () 2579 (defun gdb-display-memory-buffer ()
2580 "Display memory contents." 2580 "Display memory contents."
2581 (interactive) 2581 (interactive)
2582 (gdb-display-buffer 2582 (gdb-display-buffer
2583 (gdb-get-buffer-create 'gdb-memory-buffer))) 2583 (gdb-get-buffer-create 'gdb-memory-buffer) t))
2584 2584
2585 (defun gdb-frame-memory-buffer () 2585 (defun gdb-frame-memory-buffer ()
2586 "Display memory contents in a new frame." 2586 "Display memory contents in a new frame."
2587 (interactive) 2587 (interactive)
2588 (let ((special-display-regexps (append special-display-regexps '(".*"))) 2588 (let ((special-display-regexps (append special-display-regexps '(".*")))
2685 2685
2686 (defun gdb-display-locals-buffer () 2686 (defun gdb-display-locals-buffer ()
2687 "Display local variables of current stack and their values." 2687 "Display local variables of current stack and their values."
2688 (interactive) 2688 (interactive)
2689 (gdb-display-buffer 2689 (gdb-display-buffer
2690 (gdb-get-buffer-create 'gdb-locals-buffer))) 2690 (gdb-get-buffer-create 'gdb-locals-buffer) t))
2691 2691
2692 (defun gdb-frame-locals-buffer () 2692 (defun gdb-frame-locals-buffer ()
2693 "Display local variables of current stack and their values in a new frame." 2693 "Display local variables of current stack and their values in a new frame."
2694 (interactive) 2694 (interactive)
2695 (let ((special-display-regexps (append special-display-regexps '(".*"))) 2695 (let ((special-display-regexps (append special-display-regexps '(".*")))
2696 (special-display-frame-alist gdb-frame-parameters)) 2696 (special-display-frame-alist gdb-frame-parameters))
2697 (display-buffer (gdb-get-buffer-create 'gdb-locals-buffer)))) 2697 (display-buffer (gdb-get-buffer-create 'gdb-locals-buffer))))
2698 2698
2699 2699
2700 ;;;; Window management 2700 ;;;; Window management
2701 (defun gdb-display-buffer (buf &optional size) 2701 (defun gdb-display-buffer (buf dedicated &optional size)
2702 (let ((answer (get-buffer-window buf 0)) 2702 (let ((answer (get-buffer-window buf 0))
2703 (must-split nil)) 2703 (must-split nil))
2704 (if answer 2704 (if answer
2705 (display-buffer buf nil 0) ;Raise the frame if necessary. 2705 (display-buffer buf nil 0) ;Raise the frame if necessary.
2706 ;; The buffer is not yet displayed. 2706 ;; The buffer is not yet displayed.
2707 (pop-to-buffer gud-comint-buffer) ;Select the right frame. 2707 (pop-to-buffer gud-comint-buffer) ;Select the right frame.
2708 (let ((window (get-lru-window))) 2708 (let ((window (get-lru-window)))
2709 (if (and window 2709 (if (and window
2710 (not (eq window (get-buffer-window gud-comint-buffer)))) 2710 (not (memq window `(,(get-buffer-window gud-comint-buffer)
2711 ,gdb-source-window))))
2711 (progn 2712 (progn
2712 (set-window-buffer window buf) 2713 (set-window-buffer window buf)
2713 (setq answer window)) 2714 (setq answer window))
2714 (setq must-split t))) 2715 (setq must-split t)))
2715 (if must-split 2716 (if must-split
2716 (let* ((largest (get-largest-window)) 2717 (let* ((largest (get-largest-window))
2717 (cur-size (window-height largest)) 2718 (cur-size (window-height largest))
2718 (new-size (and size (< size cur-size) (- cur-size size)))) 2719 (new-size (and size (< size cur-size) (- cur-size size))))
2719 (setq answer (split-window largest new-size)) 2720 (setq answer (split-window largest new-size))
2720 (set-window-buffer answer buf) 2721 (set-window-buffer answer buf)
2721 (set-window-dedicated-p answer t))) 2722 (set-window-dedicated-p answer dedicated)))
2722 answer))) 2723 answer)))
2723 2724
2724 2725
2725 ;;; Shared keymap initialization: 2726 ;;; Shared keymap initialization:
2726 2727
3160 (defun gdb-display-assembler-buffer () 3161 (defun gdb-display-assembler-buffer ()
3161 "Display disassembly view." 3162 "Display disassembly view."
3162 (interactive) 3163 (interactive)
3163 (setq gdb-previous-frame nil) 3164 (setq gdb-previous-frame nil)
3164 (gdb-display-buffer 3165 (gdb-display-buffer
3165 (gdb-get-buffer-create 'gdb-assembler-buffer))) 3166 (gdb-get-buffer-create 'gdb-assembler-buffer) t))
3166 3167
3167 (defun gdb-frame-assembler-buffer () 3168 (defun gdb-frame-assembler-buffer ()
3168 "Display disassembly view in a new frame." 3169 "Display disassembly view in a new frame."
3169 (interactive) 3170 (interactive)
3170 (setq gdb-previous-frame nil) 3171 (setq gdb-previous-frame nil)