diff options
| author | Dmitry Dzhus | 2009-08-08 18:24:32 +0000 |
|---|---|---|
| committer | Dmitry Dzhus | 2009-08-08 18:24:32 +0000 |
| commit | 9cbac26bbbed088c520c2e9289e3dc8cbde32465 (patch) | |
| tree | 4ea68dc07ac526d80ce5e6c37b35c3fb150a76ee /lisp | |
| parent | 8d6bb99e733acf952a9e43a47e3e7ef48ca1f31c (diff) | |
| download | emacs-9cbac26bbbed088c520c2e9289e3dc8cbde32465.tar.gz emacs-9cbac26bbbed088c520c2e9289e3dc8cbde32465.zip | |
(gdb-breakpoints-mode-map): Don't assume threads buffer is present.
(gdb-threads-mode-map): Don't assume breakpoints buffer is present.
(gdb-disassembly-handler-custom, gdb-stack-list-frames-custom)
(gdb-locals-handler-custom, gdb-registers-handler-custom): Thread
info in mode name.
(gdb-registers-mode-map): TAB to switch to locals.
Diffstat (limited to 'lisp')
| -rw-r--r-- | lisp/ChangeLog | 6 | ||||
| -rw-r--r-- | lisp/progmodes/gdb-mi.el | 51 |
2 files changed, 47 insertions, 10 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 04646b16292..aba028d6ef0 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -8,6 +8,12 @@ | |||
| 8 | (gdb-edit-locals-value): Fixed. | 8 | (gdb-edit-locals-value): Fixed. |
| 9 | (gdb-registers-handler-custom): Print registers in right order and | 9 | (gdb-registers-handler-custom): Print registers in right order and |
| 10 | allow changing register values (only for current thread yet). | 10 | allow changing register values (only for current thread yet). |
| 11 | (gdb-breakpoints-mode-map): Don't assume threads buffer is present. | ||
| 12 | (gdb-threads-mode-map): Don't assume breakpoints buffer is present. | ||
| 13 | (gdb-disassembly-handler-custom, gdb-stack-list-frames-custom) | ||
| 14 | (gdb-locals-handler-custom, gdb-registers-handler-custom): Thread | ||
| 15 | info in mode name. | ||
| 16 | (gdb-registers-mode-map): TAB to switch to locals. | ||
| 11 | 17 | ||
| 12 | 2009-08-08 Eli Zaretskii <eliz@gnu.org> | 18 | 2009-08-08 Eli Zaretskii <eliz@gnu.org> |
| 13 | 19 | ||
diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el index e36b2e29107..b769792f788 100644 --- a/lisp/progmodes/gdb-mi.el +++ b/lisp/progmodes/gdb-mi.el | |||
| @@ -1587,6 +1587,14 @@ If `gdb-thread-number' is nil, just wrap NAME in asterisks." | |||
| 1587 | (format " (bound to thread %s)" gdb-thread-number) | 1587 | (format " (bound to thread %s)" gdb-thread-number) |
| 1588 | "") | 1588 | "") |
| 1589 | "*")) | 1589 | "*")) |
| 1590 | |||
| 1591 | (defun gdb-current-context-mode-name (mode) | ||
| 1592 | "Add thread information to MODE which is to be used as | ||
| 1593 | `mode-name'." | ||
| 1594 | (concat mode | ||
| 1595 | (if gdb-thread-number | ||
| 1596 | (format " [thread %s]" gdb-thread-number) | ||
| 1597 | ""))) | ||
| 1590 | 1598 | ||
| 1591 | 1599 | ||
| 1592 | (defcustom gud-gdb-command-name "gdb -i=mi" | 1600 | (defcustom gud-gdb-command-name "gdb -i=mi" |
| @@ -1653,9 +1661,9 @@ is running." | |||
| 1653 | (string= (gdb-get-field (gdb-current-buffer-thread) 'state) | 1661 | (string= (gdb-get-field (gdb-current-buffer-thread) 'state) |
| 1654 | "running")) | 1662 | "running")) |
| 1655 | ;; We change frame number only if the state of current thread has | 1663 | ;; We change frame number only if the state of current thread has |
| 1656 | ;; changed. | 1664 | ;; changed or there's no current thread. |
| 1657 | (when (not (eq gud-running old-value)) | 1665 | (when (not (eq gud-running old-value)) |
| 1658 | (if gud-running | 1666 | (if (or gud-running (not (gdb-current-buffer-thread))) |
| 1659 | (setq gdb-frame-number nil) | 1667 | (setq gdb-frame-number nil) |
| 1660 | (setq gdb-frame-number "0"))))) | 1668 | (setq gdb-frame-number "0"))))) |
| 1661 | 1669 | ||
| @@ -1832,8 +1840,11 @@ Sets `gdb-thread-number' to new id." | |||
| 1832 | (gdb-force-mode-line-update | 1840 | (gdb-force-mode-line-update |
| 1833 | (propertize gdb-inferior-status 'face font-lock-type-face)) | 1841 | (propertize gdb-inferior-status 'face font-lock-type-face)) |
| 1834 | (setq gdb-active-process t) | 1842 | (setq gdb-active-process t) |
| 1835 | (when (not gdb-non-stop) | 1843 | (setq gud-running t) |
| 1836 | (setq gud-running t))) | 1844 | ;; GDB doesn't seem to respond to -thread-info before first stop or |
| 1845 | ;; thread exit (even in non-stop mode), so this is useless. | ||
| 1846 | ;; Behaviour may change in the future. | ||
| 1847 | (gdb-emit-signal gdb-buf-publisher 'update-threads)) | ||
| 1837 | 1848 | ||
| 1838 | ;; -break-insert -t didn't give a reason before gdb 6.9 | 1849 | ;; -break-insert -t didn't give a reason before gdb 6.9 |
| 1839 | 1850 | ||
| @@ -2414,7 +2425,8 @@ If not in a source or disassembly buffer just set point." | |||
| 2414 | (define-key map "\r" 'gdb-goto-breakpoint) | 2425 | (define-key map "\r" 'gdb-goto-breakpoint) |
| 2415 | (define-key map "\t" '(lambda () | 2426 | (define-key map "\t" '(lambda () |
| 2416 | (interactive) | 2427 | (interactive) |
| 2417 | (gdb-set-window-buffer (gdb-threads-buffer-name) t))) | 2428 | (gdb-set-window-buffer |
| 2429 | (gdb-get-buffer-create 'gdb-threads-buffer) t))) | ||
| 2418 | (define-key map [mouse-2] 'gdb-goto-breakpoint) | 2430 | (define-key map [mouse-2] 'gdb-goto-breakpoint) |
| 2419 | (define-key map [follow-link] 'mouse-face) | 2431 | (define-key map [follow-link] 'mouse-face) |
| 2420 | map)) | 2432 | map)) |
| @@ -2500,7 +2512,8 @@ corresponding to the mode line clicked." | |||
| 2500 | (define-key map "s" 'gdb-step-thread) | 2512 | (define-key map "s" 'gdb-step-thread) |
| 2501 | (define-key map "\t" '(lambda () | 2513 | (define-key map "\t" '(lambda () |
| 2502 | (interactive) | 2514 | (interactive) |
| 2503 | (gdb-set-window-buffer (gdb-breakpoints-buffer-name) t))) | 2515 | (gdb-set-window-buffer |
| 2516 | (gdb-get-buffer-create 'gdb-breakpoints-buffer) t))) | ||
| 2504 | (define-key map [mouse-2] 'gdb-select-thread) | 2517 | (define-key map [mouse-2] 'gdb-select-thread) |
| 2505 | (define-key map [follow-link] 'mouse-face) | 2518 | (define-key map [follow-link] 'mouse-face) |
| 2506 | map)) | 2519 | map)) |
| @@ -3183,8 +3196,9 @@ DOC is an optional documentation string." | |||
| 3183 | (let ((window (get-buffer-window (current-buffer) 0))) | 3196 | (let ((window (get-buffer-window (current-buffer) 0))) |
| 3184 | (set-window-point window (gdb-mark-line marked-line gdb-disassembly-position)))) | 3197 | (set-window-point window (gdb-mark-line marked-line gdb-disassembly-position)))) |
| 3185 | (setq mode-name | 3198 | (setq mode-name |
| 3199 | (gdb-current-context-mode-name | ||
| 3186 | (concat "Disassembly: " | 3200 | (concat "Disassembly: " |
| 3187 | (gdb-get-field (gdb-current-buffer-frame) 'func))))) | 3201 | (gdb-get-field (gdb-current-buffer-frame) 'func)))))) |
| 3188 | 3202 | ||
| 3189 | (defun gdb-disassembly-place-breakpoints () | 3203 | (defun gdb-disassembly-place-breakpoints () |
| 3190 | (gdb-remove-breakpoint-icons (point-min) (point-max)) | 3204 | (gdb-remove-breakpoint-icons (point-min) (point-max)) |
| @@ -3315,7 +3329,9 @@ member." | |||
| 3315 | (when (and gdb-frame-number | 3329 | (when (and gdb-frame-number |
| 3316 | (gdb-buffer-shows-main-thread-p)) | 3330 | (gdb-buffer-shows-main-thread-p)) |
| 3317 | (gdb-mark-line (1+ (string-to-number gdb-frame-number)) | 3331 | (gdb-mark-line (1+ (string-to-number gdb-frame-number)) |
| 3318 | gdb-stack-position))) | 3332 | gdb-stack-position)) |
| 3333 | (setq mode-name | ||
| 3334 | (gdb-current-context-mode-name "Frames"))) | ||
| 3319 | 3335 | ||
| 3320 | (defun gdb-stack-buffer-name () | 3336 | (defun gdb-stack-buffer-name () |
| 3321 | (gdb-current-context-buffer-name | 3337 | (gdb-current-context-buffer-name |
| @@ -3447,7 +3463,8 @@ member." | |||
| 3447 | `(gdb-local-variable ,local)))) | 3463 | `(gdb-local-variable ,local)))) |
| 3448 | (insert (gdb-table-string table " ")) | 3464 | (insert (gdb-table-string table " ")) |
| 3449 | (setq mode-name | 3465 | (setq mode-name |
| 3450 | (concat "Locals: " (gdb-get-field (gdb-current-buffer-frame) 'func))))) | 3466 | (gdb-current-context-mode-name |
| 3467 | (concat "Locals: " (gdb-get-field (gdb-current-buffer-frame) 'func)))))) | ||
| 3451 | 3468 | ||
| 3452 | (defvar gdb-locals-header | 3469 | (defvar gdb-locals-header |
| 3453 | (list | 3470 | (list |
| @@ -3461,6 +3478,12 @@ member." | |||
| 3461 | (let ((map (make-sparse-keymap))) | 3478 | (let ((map (make-sparse-keymap))) |
| 3462 | (suppress-keymap map) | 3479 | (suppress-keymap map) |
| 3463 | (define-key map "q" 'kill-this-buffer) | 3480 | (define-key map "q" 'kill-this-buffer) |
| 3481 | (define-key map "\t" '(lambda () | ||
| 3482 | (interactive) | ||
| 3483 | (gdb-set-window-buffer | ||
| 3484 | (gdb-get-buffer-create | ||
| 3485 | 'gdb-registers-buffer | ||
| 3486 | gdb-thread-number) t))) | ||
| 3464 | map)) | 3487 | map)) |
| 3465 | 3488 | ||
| 3466 | (define-derived-mode gdb-locals-mode gdb-parent-mode "Locals" | 3489 | (define-derived-mode gdb-locals-mode gdb-parent-mode "Locals" |
| @@ -3523,7 +3546,9 @@ member." | |||
| 3523 | `(mouse-face highlight | 3546 | `(mouse-face highlight |
| 3524 | help-echo "mouse-2: edit value" | 3547 | help-echo "mouse-2: edit value" |
| 3525 | gdb-register-name ,register-name)))) | 3548 | gdb-register-name ,register-name)))) |
| 3526 | (insert (gdb-table-string table " ")))) | 3549 | (insert (gdb-table-string table " ")) |
| 3550 | (setq mode-name | ||
| 3551 | (gdb-current-context-mode-name "Registers")))) | ||
| 3527 | 3552 | ||
| 3528 | (defun gdb-edit-register-value (&optional event) | 3553 | (defun gdb-edit-register-value (&optional event) |
| 3529 | "Assign a value to a register displayed in the registers buffer." | 3554 | "Assign a value to a register displayed in the registers buffer." |
| @@ -3543,6 +3568,12 @@ member." | |||
| 3543 | (define-key map "\r" 'gdb-edit-register-value) | 3568 | (define-key map "\r" 'gdb-edit-register-value) |
| 3544 | (define-key map [mouse-2] 'gdb-edit-register-value) | 3569 | (define-key map [mouse-2] 'gdb-edit-register-value) |
| 3545 | (define-key map "q" 'kill-this-buffer) | 3570 | (define-key map "q" 'kill-this-buffer) |
| 3571 | (define-key map "\t" '(lambda () | ||
| 3572 | (interactive) | ||
| 3573 | (gdb-set-window-buffer | ||
| 3574 | (gdb-get-buffer-create | ||
| 3575 | 'gdb-locals-buffer | ||
| 3576 | gdb-thread-number) t))) | ||
| 3546 | map)) | 3577 | map)) |
| 3547 | 3578 | ||
| 3548 | (defvar gdb-registers-header | 3579 | (defvar gdb-registers-header |