[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] emacs/lisp ChangeLog progmodes/gdb-mi.el
From: |
Dmitry Dzhus |
Subject: |
[Emacs-diffs] emacs/lisp ChangeLog progmodes/gdb-mi.el |
Date: |
Sat, 08 Aug 2009 18:24:36 +0000 |
CVSROOT: /sources/emacs
Module name: emacs
Changes by: Dmitry Dzhus <sphinx> 09/08/08 18:24:35
Modified files:
lisp : ChangeLog
lisp/progmodes : gdb-mi.el
Log message:
(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.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/ChangeLog?cvsroot=emacs&r1=1.15906&r2=1.15907
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/progmodes/gdb-mi.el?cvsroot=emacs&r1=1.28&r2=1.29
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/emacs/emacs/lisp/ChangeLog,v
retrieving revision 1.15906
retrieving revision 1.15907
diff -u -b -r1.15906 -r1.15907
--- ChangeLog 8 Aug 2009 13:42:03 -0000 1.15906
+++ ChangeLog 8 Aug 2009 18:24:32 -0000 1.15907
@@ -8,6 +8,12 @@
(gdb-edit-locals-value): Fixed.
(gdb-registers-handler-custom): Print registers in right order and
allow changing register values (only for current thread yet).
+ (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.
2009-08-08 Eli Zaretskii <address@hidden>
Index: progmodes/gdb-mi.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/progmodes/gdb-mi.el,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -b -r1.28 -r1.29
--- progmodes/gdb-mi.el 8 Aug 2009 13:42:08 -0000 1.28
+++ progmodes/gdb-mi.el 8 Aug 2009 18:24:35 -0000 1.29
@@ -1588,6 +1588,14 @@
"")
"*"))
+(defun gdb-current-context-mode-name (mode)
+ "Add thread information to MODE which is to be used as
+`mode-name'."
+ (concat mode
+ (if gdb-thread-number
+ (format " [thread %s]" gdb-thread-number)
+ "")))
+
(defcustom gud-gdb-command-name "gdb -i=mi"
"Default command to execute an executable under the GDB debugger."
@@ -1653,9 +1661,9 @@
(string= (gdb-get-field (gdb-current-buffer-thread) 'state)
"running"))
;; We change frame number only if the state of current thread has
- ;; changed.
+ ;; changed or there's no current thread.
(when (not (eq gud-running old-value))
- (if gud-running
+ (if (or gud-running (not (gdb-current-buffer-thread)))
(setq gdb-frame-number nil)
(setq gdb-frame-number "0")))))
@@ -1832,8 +1840,11 @@
(gdb-force-mode-line-update
(propertize gdb-inferior-status 'face font-lock-type-face))
(setq gdb-active-process t)
- (when (not gdb-non-stop)
- (setq gud-running t)))
+ (setq gud-running t)
+ ;; GDB doesn't seem to respond to -thread-info before first stop or
+ ;; thread exit (even in non-stop mode), so this is useless.
+ ;; Behaviour may change in the future.
+ (gdb-emit-signal gdb-buf-publisher 'update-threads))
;; -break-insert -t didn't give a reason before gdb 6.9
@@ -2414,7 +2425,8 @@
(define-key map "\r" 'gdb-goto-breakpoint)
(define-key map "\t" '(lambda ()
(interactive)
- (gdb-set-window-buffer (gdb-threads-buffer-name)
t)))
+ (gdb-set-window-buffer
+ (gdb-get-buffer-create 'gdb-threads-buffer) t)))
(define-key map [mouse-2] 'gdb-goto-breakpoint)
(define-key map [follow-link] 'mouse-face)
map))
@@ -2500,7 +2512,8 @@
(define-key map "s" 'gdb-step-thread)
(define-key map "\t" '(lambda ()
(interactive)
- (gdb-set-window-buffer
(gdb-breakpoints-buffer-name) t)))
+ (gdb-set-window-buffer
+ (gdb-get-buffer-create 'gdb-breakpoints-buffer)
t)))
(define-key map [mouse-2] 'gdb-select-thread)
(define-key map [follow-link] 'mouse-face)
map))
@@ -3183,8 +3196,9 @@
(let ((window (get-buffer-window (current-buffer) 0)))
(set-window-point window (gdb-mark-line marked-line
gdb-disassembly-position))))
(setq mode-name
+ (gdb-current-context-mode-name
(concat "Disassembly: "
- (gdb-get-field (gdb-current-buffer-frame) 'func)))))
+ (gdb-get-field (gdb-current-buffer-frame) 'func))))))
(defun gdb-disassembly-place-breakpoints ()
(gdb-remove-breakpoint-icons (point-min) (point-max))
@@ -3315,7 +3329,9 @@
(when (and gdb-frame-number
(gdb-buffer-shows-main-thread-p))
(gdb-mark-line (1+ (string-to-number gdb-frame-number))
- gdb-stack-position)))
+ gdb-stack-position))
+ (setq mode-name
+ (gdb-current-context-mode-name "Frames")))
(defun gdb-stack-buffer-name ()
(gdb-current-context-buffer-name
@@ -3447,7 +3463,8 @@
`(gdb-local-variable ,local))))
(insert (gdb-table-string table " "))
(setq mode-name
- (concat "Locals: " (gdb-get-field (gdb-current-buffer-frame)
'func)))))
+ (gdb-current-context-mode-name
+ (concat "Locals: " (gdb-get-field (gdb-current-buffer-frame)
'func))))))
(defvar gdb-locals-header
(list
@@ -3461,6 +3478,12 @@
(let ((map (make-sparse-keymap)))
(suppress-keymap map)
(define-key map "q" 'kill-this-buffer)
+ (define-key map "\t" '(lambda ()
+ (interactive)
+ (gdb-set-window-buffer
+ (gdb-get-buffer-create
+ 'gdb-registers-buffer
+ gdb-thread-number) t)))
map))
(define-derived-mode gdb-locals-mode gdb-parent-mode "Locals"
@@ -3523,7 +3546,9 @@
`(mouse-face highlight
help-echo "mouse-2: edit value"
gdb-register-name ,register-name))))
- (insert (gdb-table-string table " "))))
+ (insert (gdb-table-string table " "))
+ (setq mode-name
+ (gdb-current-context-mode-name "Registers"))))
(defun gdb-edit-register-value (&optional event)
"Assign a value to a register displayed in the registers buffer."
@@ -3543,6 +3568,12 @@
(define-key map "\r" 'gdb-edit-register-value)
(define-key map [mouse-2] 'gdb-edit-register-value)
(define-key map "q" 'kill-this-buffer)
+ (define-key map "\t" '(lambda ()
+ (interactive)
+ (gdb-set-window-buffer
+ (gdb-get-buffer-create
+ 'gdb-locals-buffer
+ gdb-thread-number) t)))
map))
(defvar gdb-registers-header
- [Emacs-diffs] emacs/lisp ChangeLog progmodes/gdb-mi.el, Dmitry Dzhus, 2009/08/04
- [Emacs-diffs] emacs/lisp ChangeLog progmodes/gdb-mi.el, Dmitry Dzhus, 2009/08/04
- [Emacs-diffs] emacs/lisp ChangeLog progmodes/gdb-mi.el, Dmitry Dzhus, 2009/08/04
- [Emacs-diffs] emacs/lisp ChangeLog progmodes/gdb-mi.el, Dmitry Dzhus, 2009/08/04
- [Emacs-diffs] emacs/lisp ChangeLog progmodes/gdb-mi.el, Dmitry Dzhus, 2009/08/04
- [Emacs-diffs] emacs/lisp ChangeLog progmodes/gdb-mi.el, Dmitry Dzhus, 2009/08/04
- [Emacs-diffs] emacs/lisp ChangeLog progmodes/gdb-mi.el, Dmitry Dzhus, 2009/08/04
- [Emacs-diffs] emacs/lisp ChangeLog progmodes/gdb-mi.el, Dmitry Dzhus, 2009/08/06
- [Emacs-diffs] emacs/lisp ChangeLog progmodes/gdb-mi.el, Dmitry Dzhus, 2009/08/08
- [Emacs-diffs] emacs/lisp ChangeLog progmodes/gdb-mi.el,
Dmitry Dzhus <=
- [Emacs-diffs] emacs/lisp ChangeLog progmodes/gdb-mi.el, Dmitry Dzhus, 2009/08/08
- [Emacs-diffs] emacs/lisp ChangeLog progmodes/gdb-mi.el, Dmitry Dzhus, 2009/08/08
- [Emacs-diffs] emacs/lisp ChangeLog progmodes/gdb-mi.el, Dmitry Dzhus, 2009/08/11
- [Emacs-diffs] emacs/lisp ChangeLog progmodes/gdb-mi.el, Dmitry Dzhus, 2009/08/11
- [Emacs-diffs] emacs/lisp ChangeLog progmodes/gdb-mi.el, Dmitry Dzhus, 2009/08/24