[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/gdb-ui.el
From: |
Nick Roberts |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/gdb-ui.el |
Date: |
Mon, 12 May 2003 19:47:31 -0400 |
Index: emacs/lisp/gdb-ui.el
diff -c emacs/lisp/gdb-ui.el:1.27 emacs/lisp/gdb-ui.el:1.28
*** emacs/lisp/gdb-ui.el:1.27 Sat May 3 18:20:57 2003
--- emacs/lisp/gdb-ui.el Mon May 12 19:47:31 2003
***************
*** 524,530 ****
("signal" gdb-stopping)
("breakpoint" gdb-stopping)
("watchpoint" gdb-stopping)
! ("frame-begin" gdb-frame-begin)
("stopped" gdb-stopped)
("display-begin" gdb-display-begin)
("display-end" gdb-display-end)
--- 524,530 ----
("signal" gdb-stopping)
("breakpoint" gdb-stopping)
("watchpoint" gdb-stopping)
! ; ("frame-begin" gdb-frame-begin)
("stopped" gdb-stopped)
("display-begin" gdb-display-begin)
("display-end" gdb-display-end)
***************
*** 665,671 ****
(gdb-get-current-frame)
(gdb-invalidate-registers ignored)
(gdb-invalidate-locals ignored)
! (gdb-invalidate-display ignored)))
(let ((sink (gdb-get-output-sink)))
(cond
((eq sink 'user) t)
--- 665,672 ----
(gdb-get-current-frame)
(gdb-invalidate-registers ignored)
(gdb-invalidate-locals ignored)
! (gdb-invalidate-display ignored)
! (gdb-invalidate-threads)))
(let ((sink (gdb-get-output-sink)))
(cond
((eq sink 'user) t)
***************
*** 1572,1577 ****
--- 1573,1654 ----
(gdb-frames-select))
;;
+ ;; Threads buffer. This displays a selectable thread list.
+ ;;
+ (gdb-set-buffer-rules 'gdb-threads-buffer
+ 'gdb-threads-buffer-name
+ 'gdb-threads-mode)
+
+ (def-gdb-auto-updated-buffer gdb-threads-buffer
+ gdb-invalidate-threads
+ "info threads\n"
+ gdb-info-threads-handler
+ gdb-info-threads-custom)
+
+ (defun gdb-info-threads-custom ()
+ (save-excursion
+ (set-buffer (gdb-get-buffer 'gdb-threads-buffer))
+ (let ((buffer-read-only nil))
+ (goto-char (point-min))
+ (while (< (point) (point-max))
+ (put-text-property (progn (beginning-of-line) (point))
+ (progn (end-of-line) (point))
+ 'mouse-face 'highlight)
+ (forward-line 1)))))
+
+ (defun gdb-threads-buffer-name ()
+ (with-current-buffer gud-comint-buffer
+ (concat "*threads of " (gdb-get-target-string) "*")))
+
+ (defun gdb-display-threads-buffer ()
+ (interactive)
+ (gdb-display-buffer
+ (gdb-get-create-buffer 'gdb-threads-buffer)))
+
+ (defun gdb-frame-threads-buffer ()
+ (interactive)
+ (switch-to-buffer-other-frame
+ (gdb-get-create-buffer 'gdb-threads-buffer)))
+
+ (defvar gdb-threads-mode-map
+ (let ((map (make-sparse-keymap)))
+ (suppress-keymap map)
+ (define-key map "\r" 'gdb-threads-select)
+ (define-key map [mouse-2] 'gdb-threads-mouse-select)
+ map))
+
+ (defun gdb-threads-mode ()
+ "Major mode for gdb frames.
+
+ \\{gdb-frames-mode-map}"
+ (setq major-mode 'gdb-threads-mode)
+ (setq mode-name "Threads")
+ (setq buffer-read-only t)
+ (use-local-map gdb-threads-mode-map)
+ (gdb-invalidate-threads))
+
+ (defun gdb-get-thread-number ()
+ (save-excursion
+ (re-search-backward "^\\s-*\\([0-9]*\\)" nil t)
+ (match-string-no-properties 1)))
+
+
+ (defun gdb-threads-select ()
+ "Make the thread on the current line become the current thread and display
the
+ source in the source buffer."
+ (interactive)
+ (gdb-enqueue-input
+ (list (concat "thread " (gdb-get-thread-number) "\n") 'ignore))
+ (gud-display-frame))
+
+ (defun gdb-threads-mouse-select (event)
+ "Make the selected frame become the current frame and display the source in
+ the source buffer."
+ (interactive "e")
+ (mouse-set-point event)
+ (gdb-threads-select))
+
+ ;;
;; Registers buffer.
;;
(gdb-set-buffer-rules 'gdb-registers-buffer
***************
*** 1900,1905 ****
--- 1977,1983 ----
(define-key menu [frames] '("Stack" . gdb-display-stack-buffer))
(define-key menu [breakpoints] '("Breakpoints" .
gdb-display-breakpoints-buffer))
(define-key menu [display] '("Display" . gdb-display-display-buffer))
+ (define-key menu [threads] '("Threads" . gdb-display-threads-buffer))
(define-key menu [assembler] '("Assembler" . gdb-display-assembler-buffer)))
(defun gdb-frame-gdb-buffer ()
***************
*** 1916,1921 ****
--- 1994,2000 ----
(define-key menu [frames] '("Stack" . gdb-frame-stack-buffer))
(define-key menu [breakpoints] '("Breakpoints" .
gdb-frame-breakpoints-buffer))
(define-key menu [display] '("Display" . gdb-frame-display-buffer))
+ (define-key menu [threads] '("Threads" . gdb-frame-threads-buffer))
(define-key menu [assembler] '("Assembler" . gdb-frame-assembler-buffer)))
(defvar gdb-main-file nil "Source file from which program execution begins.")
***************
*** 2246,2256 ****
(save-excursion
(set-buffer gud-comint-buffer)
(let ((queue gdb-idle-input-queue) (item))
! (while queue
(setq item (car queue))
(if (equal (cdr item) '(gdb-assembler-handler))
! (delete item gdb-idle-input-queue))
! (setq queue (cdr queue)))))
(gdb-enqueue-idle-input
(list (concat "server disassemble " gdb-main-or-pc "\n")
'gdb-assembler-handler))
--- 2325,2335 ----
(save-excursion
(set-buffer gud-comint-buffer)
(let ((queue gdb-idle-input-queue) (item))
! (dolist (item queue)
(setq item (car queue))
(if (equal (cdr item) '(gdb-assembler-handler))
! (setq gdb-idle-input-queue
! (delete item gdb-idle-input-queue))))))
(gdb-enqueue-idle-input
(list (concat "server disassemble " gdb-main-or-pc "\n")
'gdb-assembler-handler))
- [Emacs-diffs] Changes to emacs/lisp/gdb-ui.el, Nick Roberts, 2003/05/03
- [Emacs-diffs] Changes to emacs/lisp/gdb-ui.el,
Nick Roberts <=
- [Emacs-diffs] Changes to emacs/lisp/gdb-ui.el, Nick Roberts, 2003/05/17
- [Emacs-diffs] Changes to emacs/lisp/gdb-ui.el, Nick Roberts, 2003/05/18
- [Emacs-diffs] Changes to emacs/lisp/gdb-ui.el, Nick Roberts, 2003/05/20
- [Emacs-diffs] Changes to emacs/lisp/gdb-ui.el, Nick Roberts, 2003/05/21
- [Emacs-diffs] Changes to emacs/lisp/gdb-ui.el, Nick Roberts, 2003/05/23
- [Emacs-diffs] Changes to emacs/lisp/gdb-ui.el, Nick Roberts, 2003/05/25