diff options
| author | Nick Roberts | 2006-02-14 22:03:20 +0000 |
|---|---|---|
| committer | Nick Roberts | 2006-02-14 22:03:20 +0000 |
| commit | b5e5e9f2a070dbf739827834109cce8f5d83b2db (patch) | |
| tree | d637230b23c5de41eebd85cb24d8f0007046484c | |
| parent | 853e72d905ac4b85e441948896229d5726858257 (diff) | |
| download | emacs-b5e5e9f2a070dbf739827834109cce8f5d83b2db.tar.gz emacs-b5e5e9f2a070dbf739827834109cce8f5d83b2db.zip | |
(gdb-use-separate-io-buffer)
(gdb-display-separate-io-buffer, gdb-frame-separate-io-buffer)
(gdb-separate-io-interrupt, gdb-separate-io-quit)
(gdb-separate-io-stop, gdb-separate-io-eof):
Rename from gdb-inferior-* to gdb-separate-*.
(gdb-set-gud-minor-mode-existing-buffers-1): Improve doc string.
| -rw-r--r-- | lisp/progmodes/gdb-ui.el | 91 |
1 files changed, 34 insertions, 57 deletions
diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el index 93eeaeac4f6..d271ea4acf9 100644 --- a/lisp/progmodes/gdb-ui.el +++ b/lisp/progmodes/gdb-ui.el | |||
| @@ -185,7 +185,6 @@ handlers.") | |||
| 185 | "Font lock keywords used in `gdb-local-mode'.") | 185 | "Font lock keywords used in `gdb-local-mode'.") |
| 186 | 186 | ||
| 187 | ;; Variables for GDB 6.4+ | 187 | ;; Variables for GDB 6.4+ |
| 188 | |||
| 189 | (defvar gdb-register-names nil "List of register names.") | 188 | (defvar gdb-register-names nil "List of register names.") |
| 190 | (defvar gdb-changed-registers nil | 189 | (defvar gdb-changed-registers nil |
| 191 | "List of changed register numbers (strings).") | 190 | "List of changed register numbers (strings).") |
| @@ -203,7 +202,7 @@ other with the source file with the main routine of the inferior. | |||
| 203 | 202 | ||
| 204 | If `gdb-many-windows' is t, regardless of the value of | 203 | If `gdb-many-windows' is t, regardless of the value of |
| 205 | `gdb-show-main', the layout below will appear unless | 204 | `gdb-show-main', the layout below will appear unless |
| 206 | `gdb-use-inferior-io-buffer' is nil when the source buffer | 205 | `gdb-use-separate-io-buffer' is nil when the source buffer |
| 207 | occupies the full width of the frame. Keybindings are given in | 206 | occupies the full width of the frame. Keybindings are given in |
| 208 | relevant buffer. | 207 | relevant buffer. |
| 209 | 208 | ||
| @@ -281,26 +280,26 @@ Also display the main routine in the disassembly buffer if present." | |||
| 281 | :group 'gud | 280 | :group 'gud |
| 282 | :version "22.1") | 281 | :version "22.1") |
| 283 | 282 | ||
| 284 | (defcustom gdb-use-inferior-io-buffer nil | 283 | (defcustom gdb-use-separate-io-buffer nil |
| 285 | "Non-nil means display output from the inferior in a separate buffer." | 284 | "Non-nil means display output from the inferior in a separate buffer." |
| 286 | :type 'boolean | 285 | :type 'boolean |
| 287 | :group 'gud | 286 | :group 'gud |
| 288 | :version "22.1") | 287 | :version "22.1") |
| 289 | 288 | ||
| 290 | (defun gdb-use-inferior-io-buffer (arg) | 289 | (defun gdb-use-separate-io-buffer (arg) |
| 291 | "Toggle separate IO for inferior. | 290 | "Toggle separate IO for inferior. |
| 292 | With arg, use separate IO iff arg is positive." | 291 | With arg, use separate IO iff arg is positive." |
| 293 | (interactive "P") | 292 | (interactive "P") |
| 294 | (setq gdb-use-inferior-io-buffer | 293 | (setq gdb-use-separate-io-buffer |
| 295 | (if (null arg) | 294 | (if (null arg) |
| 296 | (not gdb-use-inferior-io-buffer) | 295 | (not gdb-use-separate-io-buffer) |
| 297 | (> (prefix-numeric-value arg) 0))) | 296 | (> (prefix-numeric-value arg) 0))) |
| 298 | (message (format "Separate inferior IO %sabled" | 297 | (message (format "Separate inferior IO %sabled" |
| 299 | (if gdb-use-inferior-io-buffer "en" "dis"))) | 298 | (if gdb-use-separate-io-buffer "en" "dis"))) |
| 300 | (if (and gud-comint-buffer | 299 | (if (and gud-comint-buffer |
| 301 | (buffer-name gud-comint-buffer)) | 300 | (buffer-name gud-comint-buffer)) |
| 302 | (condition-case nil | 301 | (condition-case nil |
| 303 | (if gdb-use-inferior-io-buffer | 302 | (if gdb-use-separate-io-buffer |
| 304 | (gdb-restore-windows) | 303 | (gdb-restore-windows) |
| 305 | (kill-buffer (gdb-inferior-io-name))) | 304 | (kill-buffer (gdb-inferior-io-name))) |
| 306 | (error nil)))) | 305 | (error nil)))) |
| @@ -462,7 +461,7 @@ With arg, use separate IO iff arg is positive." | |||
| 462 | 461 | ||
| 463 | (setq gdb-buffer-type 'gdba) | 462 | (setq gdb-buffer-type 'gdba) |
| 464 | 463 | ||
| 465 | (if gdb-use-inferior-io-buffer (gdb-clear-inferior-io)) | 464 | (if gdb-use-separate-io-buffer (gdb-clear-inferior-io)) |
| 466 | 465 | ||
| 467 | ;; Hack to see test for GDB 6.4+ (-stack-info-frame was implemented in 6.4) | 466 | ;; Hack to see test for GDB 6.4+ (-stack-info-frame was implemented in 6.4) |
| 468 | (setq gdb-version nil) | 467 | (setq gdb-version nil) |
| @@ -853,7 +852,7 @@ The key should be one of the cars in `gdb-buffer-rules-assoc'." | |||
| 853 | (gdb-get-target-string) | 852 | (gdb-get-target-string) |
| 854 | "*")) | 853 | "*")) |
| 855 | 854 | ||
| 856 | (defun gdb-display-inferior-io-buffer () | 855 | (defun gdb-display-separate-io-buffer () |
| 857 | "Display IO of inferior in a separate window." | 856 | "Display IO of inferior in a separate window." |
| 858 | (interactive) | 857 | (interactive) |
| 859 | (if gdb-use-inferior-io-buffer | 858 | (if gdb-use-inferior-io-buffer |
| @@ -867,21 +866,21 @@ The key should be one of the cars in `gdb-buffer-rules-assoc'." | |||
| 867 | (menu-bar-lines . nil) | 866 | (menu-bar-lines . nil) |
| 868 | (minibuffer . nil))) | 867 | (minibuffer . nil))) |
| 869 | 868 | ||
| 870 | (defun gdb-frame-inferior-io-buffer () | 869 | (defun gdb-frame-separate-io-buffer () |
| 871 | "Display IO of inferior in a new frame." | 870 | "Display IO of inferior in a new frame." |
| 872 | (interactive) | 871 | (interactive) |
| 873 | (if gdb-use-inferior-io-buffer | 872 | (if gdb-use-separate-io-buffer |
| 874 | (let ((special-display-regexps (append special-display-regexps '(".*"))) | 873 | (let ((special-display-regexps (append special-display-regexps '(".*"))) |
| 875 | (special-display-frame-alist gdb-frame-parameters)) | 874 | (special-display-frame-alist gdb-frame-parameters)) |
| 876 | (display-buffer (gdb-get-create-buffer 'gdb-inferior-io))))) | 875 | (display-buffer (gdb-get-create-buffer 'gdb-inferior-io))))) |
| 877 | 876 | ||
| 878 | (defvar gdb-inferior-io-mode-map | 877 | (defvar gdb-inferior-io-mode-map |
| 879 | (let ((map (make-sparse-keymap))) | 878 | (let ((map (make-sparse-keymap))) |
| 880 | (define-key map "\C-c\C-c" 'gdb-inferior-io-interrupt) | 879 | (define-key map "\C-c\C-c" 'gdb-separate-io-interrupt) |
| 881 | (define-key map "\C-c\C-z" 'gdb-inferior-io-stop) | 880 | (define-key map "\C-c\C-z" 'gdb-separate-io-stop) |
| 882 | (define-key map "\C-c\C-\\" 'gdb-inferior-io-quit) | 881 | (define-key map "\C-c\C-\\" 'gdb-separate-io-quit) |
| 883 | (define-key map "\C-c\C-d" 'gdb-inferior-io-eof) | 882 | (define-key map "\C-c\C-d" 'gdb-separate-io-eof) |
| 884 | (define-key map "\C-d" 'gdb-inferior-io-eof) | 883 | (define-key map "\C-d" 'gdb-separate-io-eof) |
| 885 | map)) | 884 | map)) |
| 886 | 885 | ||
| 887 | (define-derived-mode gdb-inferior-io-mode comint-mode "Inferior I/O" | 886 | (define-derived-mode gdb-inferior-io-mode comint-mode "Inferior I/O" |
| @@ -902,25 +901,25 @@ The key should be one of the cars in `gdb-buffer-rules-assoc'." | |||
| 902 | (process-send-string proc string) | 901 | (process-send-string proc string) |
| 903 | (process-send-string proc "\n"))) | 902 | (process-send-string proc "\n"))) |
| 904 | 903 | ||
| 905 | (defun gdb-inferior-io-interrupt () | 904 | (defun gdb-separate-io-interrupt () |
| 906 | "Interrupt the program being debugged." | 905 | "Interrupt the program being debugged." |
| 907 | (interactive) | 906 | (interactive) |
| 908 | (interrupt-process | 907 | (interrupt-process |
| 909 | (get-buffer-process gud-comint-buffer) comint-ptyp)) | 908 | (get-buffer-process gud-comint-buffer) comint-ptyp)) |
| 910 | 909 | ||
| 911 | (defun gdb-inferior-io-quit () | 910 | (defun gdb-separate-io-quit () |
| 912 | "Send quit signal to the program being debugged." | 911 | "Send quit signal to the program being debugged." |
| 913 | (interactive) | 912 | (interactive) |
| 914 | (quit-process | 913 | (quit-process |
| 915 | (get-buffer-process gud-comint-buffer) comint-ptyp)) | 914 | (get-buffer-process gud-comint-buffer) comint-ptyp)) |
| 916 | 915 | ||
| 917 | (defun gdb-inferior-io-stop () | 916 | (defun gdb-separate-io-stop () |
| 918 | "Stop the program being debugged." | 917 | "Stop the program being debugged." |
| 919 | (interactive) | 918 | (interactive) |
| 920 | (stop-process | 919 | (stop-process |
| 921 | (get-buffer-process gud-comint-buffer) comint-ptyp)) | 920 | (get-buffer-process gud-comint-buffer) comint-ptyp)) |
| 922 | 921 | ||
| 923 | (defun gdb-inferior-io-eof () | 922 | (defun gdb-separate-io-eof () |
| 924 | "Send end-of-file to the program being debugged." | 923 | "Send end-of-file to the program being debugged." |
| 925 | (interactive) | 924 | (interactive) |
| 926 | (process-send-eof | 925 | (process-send-eof |
| @@ -1116,7 +1115,7 @@ not GDB." | |||
| 1116 | ((eq sink 'user) | 1115 | ((eq sink 'user) |
| 1117 | (progn | 1116 | (progn |
| 1118 | (setq gud-running t) | 1117 | (setq gud-running t) |
| 1119 | (if gdb-use-inferior-io-buffer | 1118 | (if gdb-use-separate-io-buffer |
| 1120 | (setq gdb-output-sink 'inferior)))) | 1119 | (setq gdb-output-sink 'inferior)))) |
| 1121 | (t | 1120 | (t |
| 1122 | (gdb-resync) | 1121 | (gdb-resync) |
| @@ -1126,7 +1125,7 @@ not GDB." | |||
| 1126 | "An annotation handler for `breakpoint' and other annotations. | 1125 | "An annotation handler for `breakpoint' and other annotations. |
| 1127 | They say that I/O for the subprocess is now GDB, not the program | 1126 | They say that I/O for the subprocess is now GDB, not the program |
| 1128 | being debugged." | 1127 | being debugged." |
| 1129 | (if gdb-use-inferior-io-buffer | 1128 | (if gdb-use-separate-io-buffer |
| 1130 | (let ((sink gdb-output-sink)) | 1129 | (let ((sink gdb-output-sink)) |
| 1131 | (cond | 1130 | (cond |
| 1132 | ((eq sink 'inferior) | 1131 | ((eq sink 'inferior) |
| @@ -2467,8 +2466,8 @@ corresponding to the mode line clicked." | |||
| 2467 | '("Disassembly" . gdb-display-assembler-buffer)) | 2466 | '("Disassembly" . gdb-display-assembler-buffer)) |
| 2468 | (define-key menu [registers] '("Registers" . gdb-display-registers-buffer)) | 2467 | (define-key menu [registers] '("Registers" . gdb-display-registers-buffer)) |
| 2469 | (define-key menu [inferior] | 2468 | (define-key menu [inferior] |
| 2470 | '(menu-item "Inferior IO" gdb-display-inferior-io-buffer | 2469 | '(menu-item "Inferior IO" gdb-display-separate-io-buffer |
| 2471 | :enable gdb-use-inferior-io-buffer)) | 2470 | :enable gdb-use-separate-io-buffer)) |
| 2472 | (define-key menu [locals] '("Locals" . gdb-display-locals-buffer)) | 2471 | (define-key menu [locals] '("Locals" . gdb-display-locals-buffer)) |
| 2473 | (define-key menu [frames] '("Stack" . gdb-display-stack-buffer)) | 2472 | (define-key menu [frames] '("Stack" . gdb-display-stack-buffer)) |
| 2474 | (define-key menu [breakpoints] | 2473 | (define-key menu [breakpoints] |
| @@ -2484,8 +2483,8 @@ corresponding to the mode line clicked." | |||
| 2484 | (define-key menu [disassembly] '("Disassembiy" . gdb-frame-assembler-buffer)) | 2483 | (define-key menu [disassembly] '("Disassembiy" . gdb-frame-assembler-buffer)) |
| 2485 | (define-key menu [registers] '("Registers" . gdb-frame-registers-buffer)) | 2484 | (define-key menu [registers] '("Registers" . gdb-frame-registers-buffer)) |
| 2486 | (define-key menu [inferior] | 2485 | (define-key menu [inferior] |
| 2487 | '(menu-item "Inferior IO" gdb-frame-inferior-io-buffer | 2486 | '(menu-item "Inferior IO" gdb-frame-separate-io-buffer |
| 2488 | :enable gdb-use-inferior-io-buffer)) | 2487 | :enable gdb-use-separate-io-buffer)) |
| 2489 | (define-key menu [locals] '("Locals" . gdb-frame-locals-buffer)) | 2488 | (define-key menu [locals] '("Locals" . gdb-frame-locals-buffer)) |
| 2490 | (define-key menu [frames] '("Stack" . gdb-frame-stack-buffer)) | 2489 | (define-key menu [frames] '("Stack" . gdb-frame-stack-buffer)) |
| 2491 | (define-key menu [breakpoints] | 2490 | (define-key menu [breakpoints] |
| @@ -2495,11 +2494,11 @@ corresponding to the mode line clicked." | |||
| 2495 | (define-key gud-menu-map [ui] | 2494 | (define-key gud-menu-map [ui] |
| 2496 | `(menu-item (if (eq gud-minor-mode 'gdba) "GDB-UI" "GDB-MI") | 2495 | `(menu-item (if (eq gud-minor-mode 'gdba) "GDB-UI" "GDB-MI") |
| 2497 | ,menu :visible (memq gud-minor-mode '(gdbmi gdba)))) | 2496 | ,menu :visible (memq gud-minor-mode '(gdbmi gdba)))) |
| 2498 | (define-key menu [gdb-use-inferior-io] | 2497 | (define-key menu [gdb-use-separate-io] |
| 2499 | '(menu-item "Separate inferior IO" gdb-use-inferior-io-buffer | 2498 | '(menu-item "Separate inferior IO" gdb-use-separate-io-buffer |
| 2500 | :visible (eq gud-minor-mode 'gdba) | 2499 | :visible (eq gud-minor-mode 'gdba) |
| 2501 | :help "Toggle separate IO for inferior." | 2500 | :help "Toggle separate IO for inferior." |
| 2502 | :button (:toggle . gdb-use-inferior-io-buffer))) | 2501 | :button (:toggle . gdb-use-separate-io-buffer))) |
| 2503 | (define-key menu [gdb-many-windows] | 2502 | (define-key menu [gdb-many-windows] |
| 2504 | '(menu-item "Display Other Windows" gdb-many-windows | 2503 | '(menu-item "Display Other Windows" gdb-many-windows |
| 2505 | :help "Toggle display of locals, stack and breakpoint information" | 2504 | :help "Toggle display of locals, stack and breakpoint information" |
| @@ -2545,7 +2544,7 @@ corresponding to the mode line clicked." | |||
| 2545 | (if gud-last-last-frame | 2544 | (if gud-last-last-frame |
| 2546 | (gud-find-file (car gud-last-last-frame)) | 2545 | (gud-find-file (car gud-last-last-frame)) |
| 2547 | (gud-find-file gdb-main-file))) | 2546 | (gud-find-file gdb-main-file))) |
| 2548 | (when gdb-use-inferior-io-buffer | 2547 | (when gdb-use-separate-io-buffer |
| 2549 | (split-window-horizontally) | 2548 | (split-window-horizontally) |
| 2550 | (other-window 1) | 2549 | (other-window 1) |
| 2551 | (gdb-set-window-buffer | 2550 | (gdb-set-window-buffer |
| @@ -2957,37 +2956,15 @@ BUFFER nil or omitted means use the current buffer." | |||
| 2957 | (if (re-search-forward " source language \\(\\S-*\\)\." nil t) | 2956 | (if (re-search-forward " source language \\(\\S-*\\)\." nil t) |
| 2958 | (setq gdb-current-language (match-string 1))) | 2957 | (setq gdb-current-language (match-string 1))) |
| 2959 | (gdb-invalidate-assembler)) | 2958 | (gdb-invalidate-assembler)) |
| 2960 | |||
| 2961 | |||
| 2962 | ;; For debugging Emacs only (assumes that usual stack buffer already exists). | ||
| 2963 | (defun gdb-xbacktrace () | ||
| 2964 | "Generate a full lisp level backtrace with arguments." | ||
| 2965 | (interactive) | ||
| 2966 | (let ((frames nil) | ||
| 2967 | (frame-number gdb-frame-number)) | ||
| 2968 | (with-current-buffer (gdb-get-buffer 'gdb-stack-buffer) | ||
| 2969 | (save-excursion | ||
| 2970 | (goto-char (point-min)) | ||
| 2971 | (while (search-forward "in Ffuncall " nil t) | ||
| 2972 | (goto-char (line-beginning-position)) | ||
| 2973 | (looking-at "^#\\([0-9]+\\)") | ||
| 2974 | (push (match-string-no-properties 1) frames) | ||
| 2975 | (forward-line 1)))) | ||
| 2976 | (dolist (frame frames) | ||
| 2977 | (gdb-enqueue-input (list (concat "server frame " frame "\n") | ||
| 2978 | 'ignore)) | ||
| 2979 | ; can't use separate buffer because Emacs gets confused by starting | ||
| 2980 | ; annotation from debug1_print (with output-sink eq 'emacs) | ||
| 2981 | ; (gdb-enqueue-input (list "server ppargs\n" 'gdb-get-arguments)) | ||
| 2982 | (gud-basic-call "server ppargs")) | ||
| 2983 | (gdb-enqueue-input (list (concat "server frame " frame-number "\n") | ||
| 2984 | 'ignore)))) | ||
| 2985 | 2959 | ||
| 2960 | |||
| 2986 | ;; Code specific to GDB 6.4 | 2961 | ;; Code specific to GDB 6.4 |
| 2987 | (defconst gdb-source-file-regexp-1 "fullname=\"\\(.*?\\)\"") | 2962 | (defconst gdb-source-file-regexp-1 "fullname=\"\\(.*?\\)\"") |
| 2988 | 2963 | ||
| 2989 | (defun gdb-set-gud-minor-mode-existing-buffers-1 () | 2964 | (defun gdb-set-gud-minor-mode-existing-buffers-1 () |
| 2990 | "Create list of source files for current GDB session." | 2965 | "Create list of source files for current GDB session. |
| 2966 | If buffers already exist for any of these files, gud-minor-mode | ||
| 2967 | is set in them." | ||
| 2991 | (goto-char (point-min)) | 2968 | (goto-char (point-min)) |
| 2992 | (while (re-search-forward gdb-source-file-regexp-1 nil t) | 2969 | (while (re-search-forward gdb-source-file-regexp-1 nil t) |
| 2993 | (push (match-string 1) gdb-source-file-list)) | 2970 | (push (match-string 1) gdb-source-file-list)) |