summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiles Bader <miles@gnu.org>2008-04-29 01:03:43 +0000
committerMiles Bader <miles@gnu.org>2008-04-29 01:03:43 +0000
commite983096bb6a50fdae6625cb363642bcd74ec39c5 (patch)
tree95cc0afe3eed83e334e0d01286d37b60165f8c8d
parent8336c9624933cf25c89798f162b55164073a66d9 (diff)
parent76f31f76830a8ffe78cf86187ba2bf9cbae0f61c (diff)
downloademacs-e983096bb6a50fdae6625cb363642bcd74ec39c5.tar.gz
Merge from emacs--rel--22
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-1132
-rw-r--r--lisp/ChangeLog7
-rw-r--r--lisp/progmodes/gdb-ui.el77
2 files changed, 45 insertions, 39 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 36a7b44bc81..719b5a4948d 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,10 @@
+2008-04-28 Nick Roberts <nickrob@snap.net.nz>
+
+ * progmodes/gdb-ui.el (gdb-info-breakpoints-custom): Make breakpoint
+ icons work for assembler, i.e. FILE.s, FILE.S (not disassembly).
+ (gdb-goto-breakpoint): Likewise for visiting breakpoints.
+ (gdb-assembler-custom): Be careful not to match other addresses.
+
2008-04-29 Jason Rumney <jasonr@gnu.org>
* battery.el (battery-status-function): Use w32-battery-status
diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el
index 63285802973..63d48fb9fde 100644
--- a/lisp/progmodes/gdb-ui.el
+++ b/lisp/progmodes/gdb-ui.el
@@ -1928,33 +1928,32 @@ static char *magick[] = {
(with-current-buffer (gdb-get-buffer 'gdb-breakpoints-buffer)
(save-excursion
(let ((buffer-read-only nil))
- (goto-char (point-min))
- (while (< (point) (- (point-max) 1))
- (forward-line 1)
- (if (looking-at gdb-breakpoint-regexp)
- (progn
- (setq bptno (or (match-string 1) (match-string 2)))
- (setq flag (char-after (match-beginning 3)))
- (if (match-string 1)
- (setq gdb-parent-bptno-enabled (eq flag ?y)))
- (add-text-properties
- (match-beginning 3) (match-end 3)
- (if (eq flag ?y)
- '(face font-lock-warning-face)
- '(face font-lock-type-face)))
- (let ((bl (point))
- (el (line-end-position)))
- (if (re-search-forward " in \\(.*\\) at\\s-+" el t)
- (progn
- (add-text-properties
- (match-beginning 1) (match-end 1)
- '(face font-lock-function-name-face))
- (looking-at "\\(\\S-+\\):\\([0-9]+\\)")
+ (goto-char (point-min))
+ (while (< (point) (- (point-max) 1))
+ (forward-line 1)
+ (if (looking-at gdb-breakpoint-regexp)
+ (progn
+ (setq bptno (or (match-string 1) (match-string 2)))
+ (setq flag (char-after (match-beginning 3)))
+ (if (match-string 1)
+ (setq gdb-parent-bptno-enabled (eq flag ?y)))
+ (add-text-properties
+ (match-beginning 3) (match-end 3)
+ (if (eq flag ?y)
+ '(face font-lock-warning-face)
+ '(face font-lock-type-face)))
+ (let ((bl (point))
+ (el (line-end-position)))
+ (when (re-search-forward " in \\(.*\\) at" el t)
+ (add-text-properties
+ (match-beginning 1) (match-end 1)
+ '(face font-lock-function-name-face)))
+ (if (re-search-forward ".*\\s-+\\(\\S-+\\):\\([0-9]+\\)$")
(let ((line (match-string 2))
(file (match-string 1)))
(add-text-properties bl el
- '(mouse-face highlight
- help-echo "mouse-2, RET: visit breakpoint"))
+ '(mouse-face highlight
+ help-echo "mouse-2, RET: visit breakpoint"))
(unless (file-exists-p file)
(setq file (cdr (assoc bptno gdb-location-alist))))
(if (and file
@@ -1975,20 +1974,20 @@ static char *magick[] = {
(gdb-enqueue-input
(list (concat gdb-server-prefix "info source\n")
`(lambda () (gdb-get-location
- ,bptno ,line ,flag)))))))
- (if (re-search-forward
- "<\\(\\(\\sw\\|[_.]\\)+\\)\\(\\+[0-9]+\\)?>"
- el t)
+ ,bptno ,line ,flag))))))
+ (if (re-search-forward
+ "<\\(\\(\\sw\\|[_.]\\)+\\)\\(\\+[0-9]+\\)?>"
+ el t)
+ (add-text-properties
+ (match-beginning 1) (match-end 1)
+ '(face font-lock-function-name-face))
+ (end-of-line)
+ (re-search-backward "\\s-\\(\\S-*\\)"
+ bl t)
(add-text-properties
(match-beginning 1) (match-end 1)
- '(face font-lock-function-name-face))
- (end-of-line)
- (re-search-backward "\\s-\\(\\S-*\\)"
- bl t)
- (add-text-properties
- (match-beginning 1) (match-end 1)
- '(face font-lock-variable-name-face)))))))
- (end-of-line))))))
+ '(face font-lock-variable-name-face)))))))
+ (end-of-line))))))
(if (gdb-get-buffer 'gdb-assembler-buffer) (gdb-assembler-custom))
;; Breakpoints buffer is always present. Hack to just update
@@ -2201,7 +2200,7 @@ corresponding to the mode line clicked."
(if event (posn-set-point (event-end event)))
(save-excursion
(beginning-of-line 1)
- (if (looking-at "\\([0-9]+\\.?[0-9]*\\) .+ in .+ at\\s-+\\(\\S-+\\):\\([0-9]+\\)")
+ (if (looking-at "\\([0-9]+\\.?[0-9]*\\) .*\\s-+\\(\\S-+\\):\\([0-9]+\\)$")
(let ((bptno (match-string 1))
(file (match-string 2))
(line (match-string 3)))
@@ -2218,7 +2217,7 @@ corresponding to the mode line clicked."
(error "No location specified."))))
-;; Frames buffer. This displays a perpetually correct bactracktrace
+;; Frames buffer. This displays a perpetually correct backtrace
;; (from the command `where').
;;
;; Alas, if your stack is deep, it is costly.
@@ -3475,7 +3474,7 @@ BUFFER nil or omitted means use the current buffer."
(with-current-buffer buffer
(save-excursion
(goto-char (point-min))
- (if (search-forward address nil t)
+ (if (re-search-forward (concat "^0x0*" address) nil t)
(gdb-put-breakpoint-icon (eq flag ?y) bptno)))))))
(if (not (equal gdb-pc-address "main"))
(with-current-buffer buffer