diff options
| author | Nick Roberts | 2006-04-10 09:18:11 +0000 |
|---|---|---|
| committer | Nick Roberts | 2006-04-10 09:18:11 +0000 |
| commit | caf2f944597e1107bbfa56152ea9fcd108f13176 (patch) | |
| tree | 443086cfa5ff323a12448f9eeafe1fc4b5ef4f3f | |
| parent | d9316f5c596fbb4ead8b9cc7e981e939bc7a04ab (diff) | |
| download | emacs-caf2f944597e1107bbfa56152ea9fcd108f13176.tar.gz emacs-caf2f944597e1107bbfa56152ea9fcd108f13176.zip | |
(gdb-init-1): Re-initialise gdb-main-file to nil.
(gdb-get-version): Make it work for pre "interpreter mi" (GDB 5.3?).
(gdb-setup-windows): Put something in source window if we can't find
the source file.
(gdb-frame-handler): Make it work again with just assembly.
(gdb-data-list-register-values-handler): Make it work when there is
no stack.
| -rw-r--r-- | lisp/progmodes/gdb-ui.el | 50 |
1 files changed, 27 insertions, 23 deletions
diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el index 9f527d12f9f..244570170fa 100644 --- a/lisp/progmodes/gdb-ui.el +++ b/lisp/progmodes/gdb-ui.el | |||
| @@ -524,6 +524,7 @@ With arg, use separate IO iff arg is positive." | |||
| 524 | gdb-frame-number nil | 524 | gdb-frame-number nil |
| 525 | gdb-var-list nil | 525 | gdb-var-list nil |
| 526 | gdb-force-update t | 526 | gdb-force-update t |
| 527 | gdb-main-file nil | ||
| 527 | gdb-first-post-prompt t | 528 | gdb-first-post-prompt t |
| 528 | gdb-prompting nil | 529 | gdb-prompting nil |
| 529 | gdb-input-queue nil | 530 | gdb-input-queue nil |
| @@ -580,8 +581,7 @@ With arg, use separate IO iff arg is positive." | |||
| 580 | 581 | ||
| 581 | (defun gdb-get-version () | 582 | (defun gdb-get-version () |
| 582 | (goto-char (point-min)) | 583 | (goto-char (point-min)) |
| 583 | (if (and (re-search-forward gdb-error-regexp nil t) | 584 | (if (re-search-forward "Undefined\\( mi\\)* command:" nil t) |
| 584 | (string-match ".*(missing implementation)" (match-string 1))) | ||
| 585 | (setq gdb-version "pre-6.4") | 585 | (setq gdb-version "pre-6.4") |
| 586 | (setq gdb-version "6.4+")) | 586 | (setq gdb-version "6.4+")) |
| 587 | (gdb-init-2)) | 587 | (gdb-init-2)) |
| @@ -2746,7 +2746,11 @@ corresponding to the mode line clicked." | |||
| 2746 | (switch-to-buffer | 2746 | (switch-to-buffer |
| 2747 | (if gud-last-last-frame | 2747 | (if gud-last-last-frame |
| 2748 | (gud-find-file (car gud-last-last-frame)) | 2748 | (gud-find-file (car gud-last-last-frame)) |
| 2749 | (gud-find-file gdb-main-file))) | 2749 | (if gdb-main-file |
| 2750 | (gud-find-file gdb-main-file) | ||
| 2751 | ;; Put buffer list in window if we | ||
| 2752 | ;; can't find a source file. | ||
| 2753 | (list-buffers-noselect)))) | ||
| 2750 | (when gdb-use-separate-io-buffer | 2754 | (when gdb-use-separate-io-buffer |
| 2751 | (split-window-horizontally) | 2755 | (split-window-horizontally) |
| 2752 | (other-window 1) | 2756 | (other-window 1) |
| @@ -3139,19 +3143,18 @@ BUFFER nil or omitted means use the current buffer." | |||
| 3139 | (if (re-search-forward "Stack level \\([0-9]+\\)" nil t) | 3143 | (if (re-search-forward "Stack level \\([0-9]+\\)" nil t) |
| 3140 | (setq gdb-frame-number (match-string 1))) | 3144 | (setq gdb-frame-number (match-string 1))) |
| 3141 | (goto-char (point-min)) | 3145 | (goto-char (point-min)) |
| 3142 | (if (re-search-forward | 3146 | (when (re-search-forward ".*=\\s-+0x0*\\(\\S-*\\)\\s-+in\\s-+\\(\\S-+?\\)\ |
| 3143 | ".*=\\s-+0x0*\\(\\S-*\\)\\s-+in\\s-+\\(\\S-*?\\) (\\(\\S-*?\\):[0-9]+?);? " | 3147 | \\(?: (\\(\\S-+?\\):[0-9]+?)\\)*;? " |
| 3144 | nil t) | 3148 | nil t) |
| 3145 | (progn | 3149 | (setq gdb-selected-frame (match-string 2)) |
| 3146 | (setq gdb-selected-frame (match-string 2)) | 3150 | (if (gdb-get-buffer 'gdb-locals-buffer) |
| 3147 | (if (gdb-get-buffer 'gdb-locals-buffer) | 3151 | (with-current-buffer (gdb-get-buffer 'gdb-locals-buffer) |
| 3148 | (with-current-buffer (gdb-get-buffer 'gdb-locals-buffer) | 3152 | (setq mode-name (concat "Locals:" gdb-selected-frame)))) |
| 3149 | (setq mode-name (concat "Locals:" gdb-selected-frame)))) | 3153 | (if (gdb-get-buffer 'gdb-assembler-buffer) |
| 3150 | (if (gdb-get-buffer 'gdb-assembler-buffer) | 3154 | (with-current-buffer (gdb-get-buffer 'gdb-assembler-buffer) |
| 3151 | (with-current-buffer (gdb-get-buffer 'gdb-assembler-buffer) | 3155 | (setq mode-name (concat "Machine:" gdb-selected-frame)))) |
| 3152 | (setq mode-name (concat "Machine:" gdb-selected-frame)))) | 3156 | (setq gdb-frame-address (match-string 1)) |
| 3153 | (setq gdb-frame-address (match-string 1)))) | 3157 | (if (and (match-string 3) gud-overlay-arrow-position) |
| 3154 | (if gud-overlay-arrow-position | ||
| 3155 | (let ((buffer (marker-buffer gud-overlay-arrow-position)) | 3158 | (let ((buffer (marker-buffer gud-overlay-arrow-position)) |
| 3156 | (position (marker-position gud-overlay-arrow-position))) | 3159 | (position (marker-position gud-overlay-arrow-position))) |
| 3157 | (when (and buffer (string-equal (buffer-name buffer) (match-string 3))) | 3160 | (when (and buffer (string-equal (buffer-name buffer) (match-string 3))) |
| @@ -3160,9 +3163,9 @@ BUFFER nil or omitted means use the current buffer." | |||
| 3160 | (if (string-equal gdb-frame-number "0") | 3163 | (if (string-equal gdb-frame-number "0") |
| 3161 | nil | 3164 | nil |
| 3162 | '((overlay-arrow . hollow-right-triangle)))) | 3165 | '((overlay-arrow . hollow-right-triangle)))) |
| 3163 | (set-marker gud-overlay-arrow-position position))))) | 3166 | (set-marker gud-overlay-arrow-position position)))))) |
| 3164 | (goto-char (point-min)) | 3167 | (goto-char (point-min)) |
| 3165 | (if (re-search-forward " source language \\(\\S-*\\)\." nil t) | 3168 | (if (re-search-forward " source language \\(\\S-+\\)\." nil t) |
| 3166 | (setq gdb-current-language (match-string 1))) | 3169 | (setq gdb-current-language (match-string 1))) |
| 3167 | (gdb-invalidate-assembler)) | 3170 | (gdb-invalidate-assembler)) |
| 3168 | 3171 | ||
| @@ -3281,11 +3284,12 @@ in_scope=\"\\(.*?\\)\".*?}") | |||
| 3281 | gdb-pending-triggers)) | 3284 | gdb-pending-triggers)) |
| 3282 | (goto-char (point-min)) | 3285 | (goto-char (point-min)) |
| 3283 | (if (re-search-forward gdb-error-regexp nil t) | 3286 | (if (re-search-forward gdb-error-regexp nil t) |
| 3284 | (with-current-buffer (gdb-get-buffer 'gdb-registers-buffer) | 3287 | (let ((err (match-string 1))) |
| 3285 | (let ((buffer-read-only nil)) | 3288 | (with-current-buffer (gdb-get-buffer 'gdb-registers-buffer) |
| 3286 | (erase-buffer) | 3289 | (let ((buffer-read-only nil)) |
| 3287 | (insert (match-string 1)) | 3290 | (erase-buffer) |
| 3288 | (goto-char (point-min)))) | 3291 | (insert err) |
| 3292 | (goto-char (point-min))))) | ||
| 3289 | (let ((register-list (reverse gdb-register-names)) | 3293 | (let ((register-list (reverse gdb-register-names)) |
| 3290 | (register nil) (register-string nil) (register-values nil)) | 3294 | (register nil) (register-string nil) (register-values nil)) |
| 3291 | (goto-char (point-min)) | 3295 | (goto-char (point-min)) |