• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.9.5/emacs-92/emacs/lisp/progmodes/

Lines Matching +defs:set +defs:window +defs:buffer

30 ;; GDB through the GUD buffer in the usual way, but there are also further
60 ;; If you are using Emacs and GDB on Windows you will need to flush the buffer
78 ;; minibuffer, use M-x gdba instead (or specify the core in the GUD buffer).
81 ;; "gdb --annotate=2 myprog" to keep source buffer/selected frame fixed.
94 ;; 1) Use MI command -data-read-memory for memory window.
96 ;; 3) Mark breakpoint locations on scroll-bar of source buffer?
105 (defvar gdb-pc-address nil "Initialization for Assembler buffer.
115 "List of variables in watch window.
133 (defvar gdb-buffer-fringe-width nil)
135 (defvar gdb-source-window nil)
143 (defvar gdb-buffer-type nil
144 "One of the symbols bound in `gdb-buffer-rules'.")
145 (make-variable-buffer-local 'gdb-buffer-type)
157 `user' -- gdb output should be copied to the GUD buffer
160 `inferior' -- gdb output should be copied to the inferior-io buffer.
165 `emacs' -- output should be collected in the partial-output-buffer
222 "Run gdb on program FILE in buffer *gud-FILE*.
227 pops up the GUD buffer unless `gdb-show-main' is t. In this case
228 it starts with two windows: one displaying the GUD buffer and the
233 `gdb-use-separate-io-buffer' is nil when the source buffer
242 `gdb-restore-windows' - To restore the window layout.
251 | GUD buffer (I/O of GDB) | Locals buffer |
256 | Source buffer | I/O buffer (of debugged program) |
265 | Stack buffer | Breakpoints buffer |
273 ;; Let's start with a basic gud-gdb buffer and then modify it a bit.
317 Also display the main routine in the disassembly buffer if present."
323 "If nil, just pop up the GUD buffer unless `gdb-show-main' is t.
325 buffer and the other with the source file with the main routine
332 (defcustom gdb-use-separate-io-buffer nil
333 "Non-nil means display output from the debugged program in a separate buffer."
339 (let ((buffer gud-comint-buffer))
340 (if (and buffer (buffer-name buffer))
341 (with-current-buffer buffer
344 (process-status (get-buffer-process buffer)) status))
358 (if (and gud-comint-buffer
359 (buffer-name gud-comint-buffer))
364 (defun gdb-use-separate-io-buffer (arg)
368 (setq gdb-use-separate-io-buffer
370 (not gdb-use-separate-io-buffer)
373 (if gdb-use-separate-io-buffer "en" "dis")))
374 (if (and gud-comint-buffer
375 (buffer-name gud-comint-buffer))
377 (if gdb-use-separate-io-buffer
379 (kill-buffer (gdb-inferior-io-name)))
386 (let* ((file (buffer-file-name))
389 (with-current-buffer standard-output
403 (with-current-buffer (gdb-get-buffer 'gdb-partial-output-buffer)
407 (concat expr (buffer-substring (- (point) 2) (point-max)))
408 (buffer-string))))
417 (with-current-buffer (gdb-get-buffer 'gdb-partial-output-buffer)
427 (defun gdb-set-gud-minor-mode-existing-buffers ()
434 (dolist (buffer (buffer-list))
435 (with-current-buffer buffer
436 (when (and buffer-file-name
437 (member (file-name-nondirectory buffer-file-name)
439 (set (make-local-variable 'gud-minor-mode) 'gdba)
440 (set (make-local-variable 'tool-bar-map) gud-tool-bar-map)
466 (set (make-local-variable 'gud-minor-mode) 'gdba)
467 (set (make-local-variable 'gud-marker-filter) 'gud-gdba-marker-filter)
500 "pp1 " (if (eq (buffer-local-value
501 'major-mode (window-buffer)) 'speedbar-mode)
506 'gdb-mouse-set-clear-breakpoint)
508 'gdb-mouse-set-clear-breakpoint)
556 gdb-buffer-fringe-width (car (window-fringes))
559 gdb-source-window nil
567 (setq gdb-buffer-type 'gdba)
569 (if gdb-use-separate-io-buffer (gdb-clear-inferior-io))
576 (if (eq window-system 'w32)
577 (gdb-enqueue-input (list "set new-console off\n" 'ignore)))
578 (gdb-enqueue-input (list "set height 0\n" 'ignore))
579 (gdb-enqueue-input (list "set width 0\n" 'ignore))
584 'gdb-set-gud-minor-mode-existing-buffers))
592 'gdb-set-gud-minor-mode-existing-buffers-1))
611 (let ((buffer (marker-buffer ,arrow-position)) (line))
612 (if (equal buffer (window-buffer (posn-window end)))
613 (with-current-buffer buffer
689 (let ((minor-mode (buffer-local-value 'gud-minor-mode gud-comint-buffer)))
692 (if event (posn-set-point (event-end event)))
694 (save-selected-window
700 (buffer-substring (region-beginning) (region-end))
703 (set-text-properties 0 (length expr) nil expr)
736 (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer)
841 (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer)
854 (if (memq (buffer-local-value 'gud-minor-mode gud-comint-buffer)
866 (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba)
877 (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba)
907 (if (and gud-comint-buffer (buffer-name gud-comint-buffer))
916 (if (and (eq (buffer-local-value
917 'gud-minor-mode gud-comint-buffer) 'gdba)
929 (speedbar-center-buffer-smartly))
933 (with-current-buffer gud-comint-buffer
941 ;; Each buffer has a TYPE -- a symbol that identifies the function
942 ;; of that particular buffer.
944 ;; The usual gdb interaction buffer is given the type `gdba' and
947 ;; Others are constructed by gdb-get-buffer-create and
948 ;; named according to the rules set forth in the gdb-buffer-rules-assoc
950 (defvar gdb-buffer-rules-assoc '())
952 (defun gdb-get-buffer (key)
953 "Return the gdb buffer tagged with type KEY.
954 The key should be one of the cars in `gdb-buffer-rules-assoc'."
956 (gdb-look-for-tagged-buffer key (buffer-list))))
958 (defun gdb-get-buffer-create (key)
959 "Create a new gdb buffer of the type specified by KEY.
960 The key should be one of the cars in `gdb-buffer-rules-assoc'."
961 (or (gdb-get-buffer key)
962 (let* ((rules (assoc key gdb-buffer-rules-assoc))
964 (new (get-buffer-create name)))
965 (with-current-buffer new
969 (setq gdb-buffer-type key)
970 (set (make-local-variable 'gud-minor-mode)
971 (buffer-local-value 'gud-minor-mode gud-comint-buffer))
972 (set (make-local-variable 'tool-bar-map) gud-tool-bar-map)
978 (defun gdb-look-for-tagged-buffer (key bufs)
981 (set-buffer (car bufs))
982 (if (eq gdb-buffer-type key)
988 ;; This assoc maps buffer type symbols to rules. Each rule is a list of
990 ;; roles in defining a buffer type:
992 ;; NAME - Return a name for this buffer type.
996 ;; MODE - called in a new buffer with no arguments, should establish
997 ;; the proper mode for the buffer.
1000 (defun gdb-set-buffer-rules (buffer-type &rest rules)
1001 (let ((binding (assoc buffer-type gdb-buffer-rules-assoc)))
1004 (push (cons buffer-type rules)
1005 gdb-buffer-rules-assoc))))
1008 (gdb-set-buffer-rules 'gdba 'error)
1010 ;; Partial-output buffer : This accumulates output from a command executed on
1013 (gdb-set-buffer-rules 'gdb-partial-output-buffer
1023 (gdb-set-buffer-rules 'gdb-inferior-io
1032 (defun gdb-display-separate-io-buffer ()
1033 "Display IO of debugged program in a separate window."
1035 (if gdb-use-separate-io-buffer
1036 (gdb-display-buffer
1037 (gdb-get-buffer-create 'gdb-inferior-io) t)))
1046 (defun gdb-frame-separate-io-buffer ()
1049 (if gdb-use-separate-io-buffer
1052 (display-buffer (gdb-get-buffer-create 'gdb-inferior-io)))))
1069 (make-comint-in-buffer
1070 (substring (buffer-name) 1 (- (length (buffer-name)) 1))
1071 (current-buffer) "hexl")
1076 (with-current-buffer (process-buffer proc)
1077 (setq proc (get-buffer-process gud-comint-buffer))
1085 (get-buffer-process gud-comint-buffer) comint-ptyp))
1091 (get-buffer-process gud-comint-buffer) comint-ptyp))
1097 (get-buffer-process gud-comint-buffer) comint-ptyp))
1103 (get-buffer-process gud-comint-buffer)))
1117 ;; The handler function will be called from the partial-output buffer when the
1127 (with-current-buffer gud-comint-buffer
1164 (let ((process (get-buffer-process gud-comint-buffer)))
1165 (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba)
1281 (with-current-buffer (gdb-get-buffer-create 'gdb-partial-output-buffer)
1317 (if gdb-use-separate-io-buffer
1333 (if gdb-use-separate-io-buffer
1375 "Non-nil means pop up GUD buffer in same frame."
1399 It is just like `gdb-stopping', except that if we already set the output
1405 ;;Pop up GUD buffer to display current frame when it doesn't have source
1408 (gdb-display-gdb-buffer)
1409 (gdb-frame-gdb-buffer))
1413 (if (gdb-get-buffer 'gdb-stack-buffer)
1416 (gdb-get-buffer-create 'gdb-stack-buffer)
1446 ;; Regenerate breakpoints buffer in case it has been inadvertantly deleted.
1447 (gdb-get-buffer-create 'gdb-breakpoints-buffer)
1481 (defconst gdb-buffer-list
1482 '(gdb-stack-buffer gdb-locals-buffer gdb-registers-buffer gdb-threads-buffer))
1485 (dolist (buffertype gdb-buffer-list)
1486 (let ((buffer (gdb-get-buffer buffertype)))
1487 (if buffer
1488 (with-current-buffer buffer
1495 ;; visited breakpoint is, use that window.
1496 (defun gdb-display-source-buffer (buffer)
1497 (let* ((last-window (if gud-last-last-frame
1498 (get-buffer-window
1500 (source-window (or last-window
1501 (if (and gdb-source-window
1502 (window-live-p gdb-source-window))
1503 gdb-source-window))))
1504 (when source-window
1505 (setq gdb-source-window source-window)
1506 (set-window-buffer source-window buffer))
1507 source-window))
1520 ;; Start accumulating output for the GUD buffer.
1592 (with-current-buffer (gdb-get-buffer-create 'gdb-partial-output-buffer)
1597 (with-current-buffer (gdb-get-buffer-create 'gdb-partial-output-buffer)
1598 (erase-buffer)))
1601 (with-current-buffer (gdb-get-buffer-create 'gdb-inferior-io)
1605 (gdb-display-buffer (gdb-get-buffer-create 'gdb-inferior-io) t)))
1608 (with-current-buffer (gdb-get-buffer-create 'gdb-inferior-io)
1609 (erase-buffer)))
1613 ;; One trick is to have a command who's output is always available in a buffer
1653 (let ((buf (gdb-get-buffer ',buf-key)))
1655 (with-current-buffer buf
1656 (let* ((window (get-buffer-window buf 0))
1657 (start (window-start window))
1658 (p (window-point window))
1659 (buffer-read-only nil))
1660 (erase-buffer)
1661 (insert-buffer-substring (gdb-get-buffer-create
1662 'gdb-partial-output-buffer))
1663 (set-window-start window start)
1664 (set-window-point window p)))))
1668 (defmacro def-gdb-auto-updated-buffer (buffer-key
1674 (gdb-get-buffer ',buffer-key)
1678 ,trigger-name ,buffer-key ,custom-defun)))
1683 ;; Breakpoint buffer : This displays the output of `info breakpoints'.
1685 (gdb-set-buffer-rules 'gdb-breakpoints-buffer
1686 'gdb-breakpoints-buffer-name
1689 (def-gdb-auto-updated-buffer gdb-breakpoints-buffer
1691 ;; `gdb-breakpoints-buffer'.
1697 ;; To update the buffer, this command is sent to gdb.
1702 ;; the appropriately typed buffer. That function will be called:
1704 ;; buffer specific functions
1795 ;; Put breakpoint icons in relevant margins (even those set in the GUD buffer).
1798 ;; Remove all breakpoint-icons in source buffers but not assembler buffer.
1799 (dolist (buffer (buffer-list))
1800 (with-current-buffer buffer
1802 (not (string-match "\\` ?\\*.+\\*\\'" (buffer-name))))
1804 (with-current-buffer (gdb-get-buffer 'gdb-breakpoints-buffer)
1806 (let ((buffer-read-only nil))
1836 (with-current-buffer
1838 (set (make-local-variable 'gud-minor-mode)
1840 (set (make-local-variable 'tool-bar-map)
1869 (if (gdb-get-buffer 'gdb-assembler-buffer) (gdb-assembler-custom)))
1871 (defun gdb-mouse-set-clear-breakpoint (event)
1877 (with-selected-window (posn-window posn)
1892 (with-selected-window (posn-window posn)
1916 (with-selected-window (posn-window posn)
1918 (set-buffer (window-buffer (selected-window)))
1933 (defun gdb-breakpoints-buffer-name ()
1934 (with-current-buffer gud-comint-buffer
1937 (defun gdb-display-breakpoints-buffer ()
1940 (gdb-display-buffer
1941 (gdb-get-buffer-create 'gdb-breakpoints-buffer) t))
1943 (defun gdb-frame-breakpoints-buffer ()
1948 (display-buffer (gdb-get-buffer-create 'gdb-breakpoints-buffer))))
1953 (define-key menu [quit] '("Quit" . gdb-delete-frame-or-window))
1961 ;; Don't bind "q" to kill-this-buffer as we need it for breakpoint icons.
1962 (define-key map "q" 'gdb-delete-frame-or-window)
1968 (defun gdb-delete-frame-or-window ()
1969 "Delete frame if there is only one window. Otherwise delete the window."
1971 (if (one-window-p) (delete-frame)
1972 (delete-window)))
1982 (setq buffer-read-only t)
1984 (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba)
2016 (if event (posn-set-point (event-end event)))
2023 (save-selected-window
2024 (let* ((buffer (find-file-noselect
2027 (window (or (gdb-display-source-buffer buffer)
2028 (display-buffer buffer))))
2029 (setq gdb-source-window window)
2030 (with-current-buffer buffer
2032 (set-window-point window (point))))))
2037 ;; Frames buffer. This displays a perpetually correct bactracktrace
2048 (gdb-set-buffer-rules 'gdb-stack-buffer
2049 'gdb-stack-buffer-name
2052 (def-gdb-auto-updated-buffer gdb-stack-buffer
2059 (with-current-buffer (gdb-get-buffer 'gdb-stack-buffer)
2062 (let ((buffer-read-only nil)
2075 (if (> (car (window-fringes)) 0)
2079 (set-marker gdb-stack-position (point)))
2113 (match-string 1) "\n") 'gdb-set-hollow))
2117 (kill-buffer (gdb-get-buffer 'gdb-stack-buffer)))
2120 (defun gdb-set-hollow ()
2122 (with-current-buffer (gud-find-file (car gud-last-last-frame))
2126 (defun gdb-stack-buffer-name ()
2127 (with-current-buffer gud-comint-buffer
2130 (defun gdb-display-stack-buffer ()
2133 (gdb-display-buffer
2134 (gdb-get-buffer-create 'gdb-stack-buffer) t))
2136 (defun gdb-frame-stack-buffer ()
2141 (display-buffer (gdb-get-buffer-create 'gdb-stack-buffer))))
2146 (define-key map "q" 'kill-this-buffer)
2162 (setq buffer-read-only t)
2165 (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba)
2180 (if event (posn-set-point (event-end event)))
2185 (customize-variable-other-window 'gdb-max-frames))
2192 ;; Threads buffer. This displays a selectable thread list.
2194 (gdb-set-buffer-rules 'gdb-threads-buffer
2195 'gdb-threads-buffer-name
2198 (def-gdb-auto-updated-buffer gdb-threads-buffer
2205 (with-current-buffer (gdb-get-buffer 'gdb-threads-buffer)
2206 (let ((buffer-read-only nil))
2216 (defun gdb-threads-buffer-name ()
2217 (with-current-buffer gud-comint-buffer
2220 (defun gdb-display-threads-buffer ()
2223 (gdb-display-buffer
2224 (gdb-get-buffer-create 'gdb-threads-buffer) t))
2226 (defun gdb-frame-threads-buffer ()
2231 (display-buffer (gdb-get-buffer-create 'gdb-threads-buffer))))
2236 (define-key map "q" 'kill-this-buffer)
2255 (setq buffer-read-only t)
2257 (set (make-local-variable 'font-lock-defaults)
2270 (if event (posn-set-point (event-end event)))
2278 ;; Registers buffer.
2286 (gdb-set-buffer-rules 'gdb-registers-buffer
2287 'gdb-registers-buffer-name
2290 (def-gdb-auto-updated-buffer gdb-registers-buffer
2298 (with-current-buffer (gdb-get-buffer 'gdb-registers-buffer)
2300 (let ((buffer-read-only nil)
2318 (if event (posn-set-point (event-end event)))
2323 (list (concat gdb-server-prefix "set $" register "=" value "\n")
2332 (define-key map "q" 'kill-this-buffer)
2342 (setq buffer-read-only t)
2351 (defun gdb-registers-buffer-name ()
2352 (with-current-buffer gud-comint-buffer
2355 (defun gdb-display-registers-buffer ()
2358 (gdb-display-buffer
2359 (gdb-get-buffer-create 'gdb-registers-buffer) t))
2361 (defun gdb-frame-registers-buffer ()
2366 (display-buffer (gdb-get-buffer-create 'gdb-registers-buffer))))
2375 (with-current-buffer (gdb-get-buffer-create 'gdb-registers-buffer)
2378 (with-current-buffer (gdb-get-buffer-create 'gdb-registers-buffer)
2386 ;; Memory buffer.
2389 "Number of data items in memory window."
2395 "Display format of data items in memory window."
2405 "Unit size of data items in memory window."
2413 (gdb-set-buffer-rules 'gdb-memory-buffer
2414 'gdb-memory-buffer-name
2417 (def-gdb-auto-updated-buffer gdb-memory-buffer
2433 (define-key map "q" 'kill-this-buffer)
2436 (defun gdb-memory-set-address (event)
2439 (save-selected-window
2440 (select-window (posn-window (event-start event)))
2445 (defun gdb-memory-set-repeat-count (event)
2446 "Set the number of data items in memory window."
2448 (save-selected-window
2449 (select-window (posn-window (event-start event)))
2454 (customize-set-variable 'gdb-memory-repeat-count count)
2460 (customize-set-variable 'gdb-memory-format "t")
2466 (customize-set-variable 'gdb-memory-format "o")
2472 (customize-set-variable 'gdb-memory-format "u")
2478 (customize-set-variable 'gdb-memory-format "d")
2484 (customize-set-variable 'gdb-memory-format "x")
2518 (save-selected-window
2519 (select-window (posn-window (event-start event)))
2528 (customize-set-variable 'gdb-memory-unit "g")
2534 (customize-set-variable 'gdb-memory-unit "w")
2540 (customize-set-variable 'gdb-memory-unit "h")
2546 (customize-set-variable 'gdb-memory-unit "b")
2577 (save-selected-window
2578 (select-window (posn-window (event-start event)))
2587 MOUSE is defined to run function FUNCTION with no args in the buffer
2607 (setq buffer-read-only t)
2646 'help-echo "mouse-1: set memory address"
2650 #'gdb-memory-set-address))
2654 'help-echo "mouse-1: set repeat count"
2658 #'gdb-memory-set-repeat-count))
2671 (set (make-local-variable 'font-lock-defaults)
2676 (defun gdb-memory-buffer-name ()
2677 (with-current-buffer gud-comint-buffer
2680 (defun gdb-display-memory-buffer ()
2683 (gdb-display-buffer
2684 (gdb-get-buffer-create 'gdb-memory-buffer) t))
2686 (defun gdb-frame-memory-buffer ()
2694 (display-buffer (gdb-get-buffer-create 'gdb-memory-buffer))))
2698 ;; Locals buffer.
2700 (gdb-set-buffer-rules 'gdb-locals-buffer
2701 'gdb-locals-buffer-name
2705 (gdb-get-buffer 'gdb-locals-buffer)
2716 (mouse-set-point event)
2739 (let ((buf (gdb-get-buffer 'gdb-partial-output-buffer)))
2740 (with-current-buffer buf
2750 (let ((buf (gdb-get-buffer 'gdb-locals-buffer)))
2752 (with-current-buffer buf
2753 (let* ((window (get-buffer-window buf 0))
2754 (start (window-start window))
2755 (p (window-point window))
2756 (buffer-read-only nil))
2757 (erase-buffer)
2758 (insert-buffer-substring (gdb-get-buffer-create
2759 'gdb-partial-output-buffer))
2760 (set-window-start window start)
2761 (set-window-point window p))
2768 (define-key map "q" 'kill-this-buffer)
2778 (setq buffer-read-only t)
2780 (set (make-local-variable 'font-lock-defaults)
2783 (if (and (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba)
2788 (defun gdb-locals-buffer-name ()
2789 (with-current-buffer gud-comint-buffer
2792 (defun gdb-display-locals-buffer ()
2795 (gdb-display-buffer
2796 (gdb-get-buffer-create 'gdb-locals-buffer) t))
2798 (defun gdb-frame-locals-buffer ()
2803 (display-buffer (gdb-get-buffer-create 'gdb-locals-buffer))))
2808 (defun gdb-display-buffer (buf dedicated &optional size)
2809 (let ((answer (get-buffer-window buf 0))
2812 (display-buffer buf nil 0) ;Raise the frame if necessary.
2813 ;; The buffer is not yet displayed.
2814 (pop-to-buffer gud-comint-buffer) ;Select the right frame.
2815 (let ((window (get-lru-window)))
2816 (if (and window
2817 (not (memq window `(,(get-buffer-window gud-comint-buffer)
2818 ,gdb-source-window))))
2820 (set-window-buffer window buf)
2821 (setq answer window))
2824 (let* ((largest (get-largest-window))
2825 (cur-size (window-height largest))
2827 (setq answer (split-window largest new-size))
2828 (set-window-buffer answer buf)
2829 (set-window-dedicated-p answer dedicated)))
2840 (define-key menu [gdb] '("Gdb" . gdb-display-gdb-buffer))
2841 (define-key menu [threads] '("Threads" . gdb-display-threads-buffer))
2843 '(menu-item "Separate IO" gdb-display-separate-io-buffer
2844 :enable gdb-use-separate-io-buffer))
2845 (define-key menu [memory] '("Memory" . gdb-display-memory-buffer))
2846 (define-key menu [registers] '("Registers" . gdb-display-registers-buffer))
2848 '("Disassembly" . gdb-display-assembler-buffer))
2850 '("Breakpoints" . gdb-display-breakpoints-buffer))
2851 (define-key menu [locals] '("Locals" . gdb-display-locals-buffer))
2852 (define-key menu [frames] '("Stack" . gdb-display-stack-buffer)))
2858 (define-key menu [gdb] '("Gdb" . gdb-frame-gdb-buffer))
2859 (define-key menu [threads] '("Threads" . gdb-frame-threads-buffer))
2860 (define-key menu [memory] '("Memory" . gdb-frame-memory-buffer))
2862 '(menu-item "Separate IO" gdb-frame-separate-io-buffer
2863 :enable gdb-use-separate-io-buffer))
2864 (define-key menu [registers] '("Registers" . gdb-frame-registers-buffer))
2865 (define-key menu [disassembly] '("Disassembly" . gdb-frame-assembler-buffer))
2867 '("Breakpoints" . gdb-frame-breakpoints-buffer))
2868 (define-key menu [locals] '("Locals" . gdb-frame-locals-buffer))
2869 (define-key menu [frames] '("Stack" . gdb-frame-stack-buffer)))
2881 '(menu-item "Separate IO" gdb-use-separate-io-buffer
2884 :button (:toggle . gdb-use-separate-io-buffer)))
2893 (defun gdb-frame-gdb-buffer ()
2894 "Display GUD buffer in a new frame."
2900 (same-window-regexps nil))
2901 (display-buffer gud-comint-buffer)))
2903 (defun gdb-display-gdb-buffer ()
2904 "Display GUD buffer."
2906 (let ((same-window-regexps nil))
2907 (pop-to-buffer gud-comint-buffer)))
2909 (defun gdb-set-window-buffer (name)
2910 (set-window-buffer (selected-window) (get-buffer name))
2911 (set-window-dedicated-p (selected-window) t))
2914 "Layout the window pattern for `gdb-many-windows'."
2915 (gdb-display-locals-buffer)
2916 (gdb-display-stack-buffer)
2918 (gdb-display-breakpoints-buffer)
2921 (pop-to-buffer gud-comint-buffer)
2922 (split-window nil ( / ( * (window-height) 3) 4))
2923 (split-window nil ( / (window-height) 3))
2924 (split-window-horizontally)
2925 (other-window 1)
2926 (gdb-set-window-buffer (gdb-locals-buffer-name))
2927 (other-window 1)
2928 (switch-to-buffer
2933 ;; Put buffer list in window if we
2936 (setq gdb-source-window (selected-window))
2937 (when gdb-use-separate-io-buffer
2938 (split-window-horizontally)
2939 (other-window 1)
2940 (gdb-set-window-buffer
2941 (gdb-get-buffer-create 'gdb-inferior-io)))
2942 (other-window 1)
2943 (gdb-set-window-buffer (gdb-stack-buffer-name))
2944 (split-window-horizontally)
2945 (other-window 1)
2946 (gdb-set-window-buffer (gdb-breakpoints-buffer-name))
2947 (other-window 1))
2953 (pop-to-buffer gud-comint-buffer) ;Select the right window and frame.
2958 (split-window)
2959 (other-window 1)
2960 (switch-to-buffer
2964 (setq gdb-source-window (selected-window))
2965 (other-window 1))))
2970 (dolist (buffer (buffer-list))
2971 (unless (eq buffer gud-comint-buffer)
2972 (with-current-buffer buffer
2974 (if (string-match "\\` ?\\*.+\\*\\'" (buffer-name))
2975 (kill-buffer nil)
3005 (gdb-get-buffer-create 'gdb-breakpoints-buffer)
3008 (display-buffer (gud-find-file gdb-main-file))))))
3012 Put in buffer and place breakpoint icon."
3025 (with-current-buffer
3027 (save-current-buffer
3028 (set (make-local-variable 'gud-minor-mode) 'gdba)
3029 (set (make-local-variable 'tool-bar-map) gud-tool-bar-map))
3038 "Set up buffer for debugging if file is part of the source code
3040 (if (and (buffer-name gud-comint-buffer)
3042 gud-comint-buffer
3043 (memq (buffer-local-value 'gud-minor-mode gud-comint-buffer)
3047 (file-name-nondirectory buffer-file-name)
3048 buffer-file-name)
3050 (with-current-buffer (find-buffer-visiting buffer-file-name)
3051 (set (make-local-variable 'gud-minor-mode)
3052 (buffer-local-value 'gud-minor-mode gud-comint-buffer))
3053 (set (make-local-variable 'tool-bar-map) gud-tool-bar-map)))))
3057 "Put string PUTSTRING in front of POS in the current buffer.
3058 PUTSTRING is displayed by putting an overlay into the current buffer with a
3062 (buffer (current-buffer)))
3064 (let ((overlay (make-overlay pos pos buffer))
3074 (defun gdb-remove-strings (start end &optional buffer)
3077 BUFFER nil or omitted means use the current buffer."
3078 (unless buffer
3079 (setq buffer (current-buffer)))
3088 (source-window (get-buffer-window (current-buffer) 0)))
3100 (if source-window (car (window-fringes source-window)))
3101 gdb-buffer-fringe-width) 8)
3111 (save-current-buffer
3113 (if source-window
3114 (set-window-margins
3115 source-window
3140 (save-current-buffer
3142 (let ((window (get-buffer-window (current-buffer) 0)))
3143 (if window
3144 (set-window-margins
3145 window left-margin-width right-margin-width)))))
3157 (let ((window (get-buffer-window (current-buffer) 0)))
3158 (if window
3159 (set-window-margins
3160 window left-margin-width right-margin-width)))))
3165 ;; Assembler buffer.
3167 (gdb-set-buffer-rules 'gdb-assembler-buffer
3168 'gdb-assembler-buffer-name
3172 ;; window-start but keep the overlay arrow/current line visible.
3177 (let ((buf (gdb-get-buffer 'gdb-assembler-buffer)))
3179 (with-current-buffer buf
3180 (let* ((window (get-buffer-window buf 0))
3181 (p (window-point window))
3182 (buffer-read-only nil))
3183 (erase-buffer)
3184 (insert-buffer-substring (gdb-get-buffer-create
3185 'gdb-partial-output-buffer))
3186 (set-window-point window p)))))
3191 (let ((buffer (gdb-get-buffer 'gdb-assembler-buffer))
3193 (with-current-buffer buffer
3209 (set-marker gdb-overlay-arrow-position (point))))))
3210 ;; remove all breakpoint-icons in assembler buffer before updating.
3212 (with-current-buffer (gdb-get-buffer 'gdb-breakpoints-buffer)
3223 (with-current-buffer buffer
3229 (with-current-buffer buffer
3230 (set-window-point (get-buffer-window buffer 0) pos)))))
3235 (define-key map "q" 'kill-this-buffer)
3263 (setq buffer-read-only t)
3266 (set (make-local-variable 'font-lock-defaults)
3271 (defun gdb-assembler-buffer-name ()
3272 (with-current-buffer gud-comint-buffer
3275 (defun gdb-display-assembler-buffer ()
3279 (gdb-display-buffer
3280 (gdb-get-buffer-create 'gdb-assembler-buffer) t))
3282 (defun gdb-frame-assembler-buffer ()
3288 (display-buffer (gdb-get-buffer-create 'gdb-assembler-buffer))))
3291 ;; must be enqueued to update the buffer with the new output
3293 (if (gdb-get-buffer 'gdb-assembler-buffer)
3303 (with-current-buffer gud-comint-buffer
3340 (if (gdb-get-buffer 'gdb-locals-buffer)
3341 (with-current-buffer (gdb-get-buffer 'gdb-locals-buffer)
3343 (if (gdb-get-buffer 'gdb-assembler-buffer)
3344 (with-current-buffer (gdb-get-buffer 'gdb-assembler-buffer)
3348 (let ((buffer (marker-buffer gud-overlay-arrow-position))
3350 (when (and buffer
3351 (string-equal (buffer-name buffer)
3353 (with-current-buffer buffer
3358 (set-marker gud-overlay-arrow-position position))))))
3369 (defun gdb-set-gud-minor-mode-existing-buffers-1 ()
3372 is set in them."
3376 (dolist (buffer (buffer-list))
3377 (with-current-buffer buffer
3378 (when (member buffer-file-name gdb-source-file-list)
3379 (set (make-local-variable 'gud-minor-mode)
3380 (buffer-local-value 'gud-minor-mode gud-comint-buffer))
3381 (set (make-local-variable 'tool-bar-map) gud-tool-bar-map)
3393 (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba)
3432 (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba)
3463 ;; Registers buffer.
3465 (gdb-set-buffer-rules 'gdb-registers-buffer
3466 'gdb-registers-buffer-name
3470 (gdb-get-buffer 'gdb-registers-buffer)
3471 (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba)
3485 (with-current-buffer (gdb-get-buffer 'gdb-registers-buffer)
3486 (let ((buffer-read-only nil))
3487 (erase-buffer)
3503 (let ((buf (gdb-get-buffer 'gdb-registers-buffer)))
3504 (with-current-buffer buf
3505 (let* ((window (get-buffer-window buf 0))
3506 (start (window-start window))
3507 (p (window-point window))
3508 (buffer-read-only nil))
3509 (erase-buffer)
3511 (set-window-start window start)
3512 (set-window-point window p))))))
3516 (with-current-buffer (gdb-get-buffer 'gdb-registers-buffer)
3518 (let ((buffer-read-only nil)
3535 (if (and (gdb-get-buffer 'gdb-registers-buffer)
3540 (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba)
3558 ;; Locals buffer.
3561 (gdb-set-buffer-rules 'gdb-locals-buffer
3562 'gdb-locals-buffer-name
3566 (gdb-get-buffer 'gdb-locals-buffer)
3567 (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba)
3592 "Assign a value to a variable displayed in the locals buffer."
3595 (if event (posn-set-point (event-end event)))
3600 (list (concat gdb-server-prefix"set variable " var " = " value "\n")
3611 (with-current-buffer (gdb-get-buffer 'gdb-locals-buffer)
3612 (let ((buffer-read-only nil))
3613 (erase-buffer)
3625 (let ((buf (gdb-get-buffer 'gdb-locals-buffer)))
3626 (and buf (with-current-buffer buf
3627 (let* ((window (get-buffer-window buf 0))
3628 (start (window-start window))
3629 (p (window-point window))
3630 (buffer-read-only nil) (name) (value))
3631 (erase-buffer)
3650 (set-window-start window start)
3651 (set-window-point window p))))))))