Mercurial > emacs
changeset 67096:ca31f8486563
(gdb-speedbar-auto-raise): New function and variable.
(gdb-var-create-handler, gdb-var-list-children-handler):
Don't match on "char **...".
(gdb-var-update-handler): Find values for all variable objects.
(gdb-info-frames-custom): Identify frames by leading "#".
author | Nick Roberts <nickrob@snap.net.nz> |
---|---|
date | Thu, 24 Nov 2005 00:34:59 +0000 |
parents | b18cc2779815 |
children | 9af04bbaf1e0 |
files | lisp/progmodes/gdb-ui.el |
diffstat | 1 files changed, 27 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/progmodes/gdb-ui.el Thu Nov 24 00:33:42 2005 +0000 +++ b/lisp/progmodes/gdb-ui.el Thu Nov 24 00:34:59 2005 +0000 @@ -67,6 +67,9 @@ ;; and compiling with -DUNBUFFERED while debugging. ;; ;; Known Bugs: +;; 1) Strings that are watched don't update in the speedbar when their +;; contents change. +;; 2) Watch expressions go out of scope when the inferior is re-run. ;; ;; TODO: ;; 1) Use MI command -data-read-memory for memory window. @@ -471,6 +474,21 @@ (forward-char 2) (gud-call (concat "until *%a"))))))))) +(defcustom gdb-speedbar-auto-raise t + "If non-nil raise speedbar every time display of watch expressions is\ + updated." + :type 'boolean + :group 'gud + :version "22.1") + +(defun gdb-speedbar-auto-raise (arg) + "Toggle automatic raising of the speedbar for watch expressions." + (interactive "P") + (setq gdb-speedbar-auto-raise + (if (null arg) + (not gdb-speedbar-auto-raise) + (> (prefix-numeric-value arg) 0)))) + (defcustom gdb-use-colon-colon-notation nil "If non-nil use FUN::VAR format to display variables in the speedbar." :type 'boolean @@ -516,7 +534,7 @@ (speedbar-change-initial-expansion-list "GUD")) (if (or (equal (nth 2 var) "0") (and (equal (nth 2 var) "1") - (string-match "char \\*" (nth 3 var)))) + (string-match "char \\*$" (nth 3 var)))) (gdb-enqueue-input (list (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) @@ -577,7 +595,7 @@ (push varchild var-list) (if (or (equal (nth 2 varchild) "0") (and (equal (nth 2 varchild) "1") - (string-match "char \\*" (nth 3 varchild)))) + (string-match "char \\*$" (nth 3 varchild)))) (gdb-enqueue-input (list (concat @@ -604,16 +622,12 @@ (catch 'var-found-1 (let ((varnum (match-string 1))) (dolist (var gdb-var-list) - (when (and (string-equal varnum (cadr var)) - (or (equal (nth 2 var) "0") - (and (equal (nth 2 var) "1") - (string-match "char \\*" (nth 3 var))))) - (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))))))) + (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)) @@ -1661,7 +1675,7 @@ (while (< (point) (point-max)) (setq bl (line-beginning-position) el (line-end-position)) - (unless (looking-at "No ") + (when (looking-at "#") (add-text-properties bl el '(mouse-face highlight help-echo "mouse-2, RET: Select frame")))