emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/progmodes/gdb-ui.el


From: Nick Roberts
Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/gdb-ui.el
Date: Mon, 05 Dec 2005 21:31:17 -0500

Index: emacs/lisp/progmodes/gdb-ui.el
diff -c emacs/lisp/progmodes/gdb-ui.el:1.123 
emacs/lisp/progmodes/gdb-ui.el:1.124
*** emacs/lisp/progmodes/gdb-ui.el:1.123        Sun Dec  4 09:12:07 2005
--- emacs/lisp/progmodes/gdb-ui.el      Tue Dec  6 02:31:16 2005
***************
*** 528,574 ****
    "name=\"\\(.*?\\)\",numchild=\"\\(.*?\\)\",type=\"\\(.*?\\)\"")
  
  (defun gdb-var-create-handler (expr)
!   (with-current-buffer (gdb-get-create-buffer 'gdb-partial-output-buffer)
!     (goto-char (point-min))
!     (if (re-search-forward gdb-var-create-regexp nil t)
!       (let ((var (list expr
!                        (match-string 1)
!                        (match-string 2)
!                        (match-string 3)
!                        nil nil)))
!         (push var gdb-var-list)
!         (speedbar 1)
!         (unless (string-equal
!                  speedbar-initial-expansion-list-name "GUD")
!           (speedbar-change-initial-expansion-list "GUD"))
!         (gdb-enqueue-input
!          (list
!           (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer)
!                   'gdba)
!               (concat "server interpreter mi \"-var-evaluate-expression "
!                       (nth 1 var) "\"\n")
!             (concat "-var-evaluate-expression " (nth 1 var) "\n"))
!           `(lambda () (gdb-var-evaluate-expression-handler
!                        ,(nth 1 var) nil))))
!           (setq gdb-var-changed t))
!       (if (search-forward "Undefined command" nil t)
!         (message-box "Watching expressions requires gdb 6.0 onwards")
!       (message "No symbol \"%s\" in current context." expr)))))
  
  (defun gdb-var-evaluate-expression-handler (varnum changed)
!   (with-current-buffer (gdb-get-create-buffer 'gdb-partial-output-buffer)
!     (goto-char (point-min))
!     (re-search-forward ".*value=\\(\".*\"\\)" nil t)
!     (catch 'var-found
!       (let ((num 0))
!       (dolist (var gdb-var-list)
!         (if (string-equal varnum (cadr var))
!             (progn
!               (if changed (setcar (nthcdr 5 var) t))
!               (setcar (nthcdr 4 var) (read (match-string 1)))
!               (setcar (nthcdr num gdb-var-list) var)
!               (throw 'var-found nil)))
!         (setq num (+ num 1))))))
    (setq gdb-var-changed t))
  
  (defun gdb-var-list-children (varnum)
--- 528,572 ----
    "name=\"\\(.*?\\)\",numchild=\"\\(.*?\\)\",type=\"\\(.*?\\)\"")
  
  (defun gdb-var-create-handler (expr)
!   (goto-char (point-min))
!   (if (re-search-forward gdb-var-create-regexp nil t)
!       (let ((var (list expr
!                      (match-string 1)
!                      (match-string 2)
!                      (match-string 3)
!                      nil nil)))
!       (push var gdb-var-list)
!       (speedbar 1)
!       (unless (string-equal
!                speedbar-initial-expansion-list-name "GUD")
!         (speedbar-change-initial-expansion-list "GUD"))
!       (gdb-enqueue-input
!        (list
!         (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer)
!                 'gdba)
!             (concat "server interpreter mi \"-var-evaluate-expression "
!                     (nth 1 var) "\"\n")
!           (concat "-var-evaluate-expression " (nth 1 var) "\n"))
!         `(lambda () (gdb-var-evaluate-expression-handler
!                      ,(nth 1 var) nil))))
!       (setq gdb-var-changed t))
!     (if (search-forward "Undefined command" nil t)
!       (message-box "Watching expressions requires gdb 6.0 onwards")
!       (message "No symbol \"%s\" in current context." expr))))
  
  (defun gdb-var-evaluate-expression-handler (varnum changed)
!   (goto-char (point-min))
!   (re-search-forward ".*value=\\(\".*\"\\)" nil t)
!   (catch 'var-found
!     (let ((num 0))
!       (dolist (var gdb-var-list)
!       (if (string-equal varnum (cadr var))
!           (progn
!             (if changed (setcar (nthcdr 5 var) t))
!             (setcar (nthcdr 4 var) (read (match-string 1)))
!             (setcar (nthcdr num gdb-var-list) var)
!             (throw 'var-found nil)))
!       (setq num (+ num 1)))))
    (setq gdb-var-changed t))
  
  (defun gdb-var-list-children (varnum)
***************
*** 581,613 ****
  type=\"\\(.*?\\)\"")
  
  (defun gdb-var-list-children-handler (varnum)
!   (with-current-buffer (gdb-get-create-buffer 'gdb-partial-output-buffer)
!     (goto-char (point-min))
!     (let ((var-list nil))
!      (catch 'child-already-watched
!        (dolist (var gdb-var-list)
!        (if (string-equal varnum (cadr var))
!            (progn
!              (push var var-list)
!              (while (re-search-forward gdb-var-list-children-regexp nil t)
!                (let ((varchild (list (match-string 2)
!                                      (match-string 1)
!                                      (match-string 3)
!                                      (match-string 4)
!                                      nil nil)))
!                  (dolist (var1 gdb-var-list)
!                    (if (string-equal (cadr var1) (cadr varchild))
!                        (throw 'child-already-watched nil)))
!                  (push varchild var-list)
!                  (gdb-enqueue-input
!                   (list
!                    (concat
!                     "server interpreter mi \"-var-evaluate-expression "
!                     (nth 1 varchild) "\"\n")
!                    `(lambda () (gdb-var-evaluate-expression-handler
!                                 ,(nth 1 varchild) nil)))))))
!          (push var var-list)))
!        (setq gdb-var-list (nreverse var-list))))))
  
  (defun gdb-var-update ()
    (when (not (member 'gdb-var-update gdb-pending-triggers))
--- 579,610 ----
  type=\"\\(.*?\\)\"")
  
  (defun gdb-var-list-children-handler (varnum)
!   (goto-char (point-min))
!   (let ((var-list nil))
!     (catch 'child-already-watched
!       (dolist (var gdb-var-list)
!       (if (string-equal varnum (cadr var))
!           (progn
!             (push var var-list)
!             (while (re-search-forward gdb-var-list-children-regexp nil t)
!               (let ((varchild (list (match-string 2)
!                                     (match-string 1)
!                                     (match-string 3)
!                                     (match-string 4)
!                                     nil nil)))
!                 (dolist (var1 gdb-var-list)
!                   (if (string-equal (cadr var1) (cadr varchild))
!                       (throw 'child-already-watched nil)))
!                 (push varchild var-list)
!                 (gdb-enqueue-input
!                  (list
!                   (concat
!                    "server interpreter mi \"-var-evaluate-expression "
!                    (nth 1 varchild) "\"\n")
!                   `(lambda () (gdb-var-evaluate-expression-handler
!                                ,(nth 1 varchild) nil)))))))
!         (push var var-list)))
!       (setq gdb-var-list (nreverse var-list)))))
  
  (defun gdb-var-update ()
    (when (not (member 'gdb-var-update gdb-pending-triggers))
***************
*** 619,638 ****
  (defconst gdb-var-update-regexp "name=\"\\(.*?\\)\"")
  
  (defun gdb-var-update-handler ()
!   (with-current-buffer (gdb-get-create-buffer 'gdb-partial-output-buffer)
!     (goto-char (point-min))
!     (while (re-search-forward gdb-var-update-regexp nil t)
!       (catch 'var-found-1
!       (let ((varnum (match-string 1)))
!         (dolist (var gdb-var-list)
!           (gdb-enqueue-input
!            (list
!             (concat "server interpreter mi \"-var-evaluate-expression "
!                     varnum "\"\n")
!             `(lambda () (gdb-var-evaluate-expression-handler ,varnum t))))
!           (throw 'var-found-1 nil))))))
    (setq gdb-pending-triggers
!    (delq 'gdb-var-update gdb-pending-triggers))
    (when (and (boundp 'speedbar-frame) (frame-live-p speedbar-frame))
      ;; Dummy command to update speedbar at right time.
      (gdb-enqueue-input (list "server pwd\n" 'gdb-speedbar-timer-fn))
--- 616,634 ----
  (defconst gdb-var-update-regexp "name=\"\\(.*?\\)\"")
  
  (defun gdb-var-update-handler ()
!   (goto-char (point-min))
!   (while (re-search-forward gdb-var-update-regexp nil t)
!     (catch 'var-found-1
!       (let ((varnum (match-string 1)))
!       (dolist (var gdb-var-list)
!         (gdb-enqueue-input
!          (list
!           (concat "server interpreter mi \"-var-evaluate-expression "
!                   varnum "\"\n")
!           `(lambda () (gdb-var-evaluate-expression-handler ,varnum t))))
!         (throw 'var-found-1 nil)))))
    (setq gdb-pending-triggers
!       (delq 'gdb-var-update gdb-pending-triggers))
    (when (and (boundp 'speedbar-frame) (frame-live-p speedbar-frame))
      ;; Dummy command to update speedbar at right time.
      (gdb-enqueue-input (list "server pwd\n" 'gdb-speedbar-timer-fn))
***************
*** 2891,2916 ****
  (defun gdb-frame-handler ()
    (setq gdb-pending-triggers
        (delq 'gdb-get-selected-frame gdb-pending-triggers))
!   (with-current-buffer (gdb-get-create-buffer 'gdb-partial-output-buffer)
!     (goto-char (point-min))
!     (if (re-search-forward  "Stack level \\([0-9]+\\)" nil t)
!       (setq gdb-frame-number (match-string 1)))
!     (goto-char (point-min))
!     (if (re-search-forward
!        ".*=\\s-+0x0*\\(\\S-*\\)\\s-+in\\s-+\\(\\S-*?\\);? " nil t)
!       (progn
!         (setq gdb-selected-frame (match-string 2))
!         (if (gdb-get-buffer 'gdb-locals-buffer)
!             (with-current-buffer (gdb-get-buffer 'gdb-locals-buffer)
!               (setq mode-name (concat "Locals:" gdb-selected-frame))))
!         (if (gdb-get-buffer 'gdb-assembler-buffer)
!             (with-current-buffer (gdb-get-buffer 'gdb-assembler-buffer)
!               (setq mode-name (concat "Machine:" gdb-selected-frame))))
!         (setq gdb-frame-address (match-string 1))))
!     (goto-char (point-min))
!     (if (re-search-forward " source language \\(\\S-*\\)\." nil t)
!       (setq gdb-current-language (match-string 1))))
!     (gdb-invalidate-assembler))
  
  (provide 'gdb-ui)
  
--- 2887,2911 ----
  (defun gdb-frame-handler ()
    (setq gdb-pending-triggers
        (delq 'gdb-get-selected-frame gdb-pending-triggers))
!   (goto-char (point-min))
!   (if (re-search-forward  "Stack level \\([0-9]+\\)" nil t)
!       (setq gdb-frame-number (match-string 1)))
!   (goto-char (point-min))
!   (if (re-search-forward
!        ".*=\\s-+0x0*\\(\\S-*\\)\\s-+in\\s-+\\(\\S-*?\\);? " nil t)
!       (progn
!       (setq gdb-selected-frame (match-string 2))
!       (if (gdb-get-buffer 'gdb-locals-buffer)
!           (with-current-buffer (gdb-get-buffer 'gdb-locals-buffer)
!             (setq mode-name (concat "Locals:" gdb-selected-frame))))
!       (if (gdb-get-buffer 'gdb-assembler-buffer)
!           (with-current-buffer (gdb-get-buffer 'gdb-assembler-buffer)
!             (setq mode-name (concat "Machine:" gdb-selected-frame))))
!       (setq gdb-frame-address (match-string 1))))
!   (goto-char (point-min))
!   (if (re-search-forward " source language \\(\\S-*\\)\." nil t)
!       (setq gdb-current-language (match-string 1)))
!   (gdb-invalidate-assembler))
  
  (provide 'gdb-ui)
  




reply via email to

[Prev in Thread] Current Thread [Next in Thread]