Mercurial > emacs
changeset 62867:366567a93053
(gdb-memory-set-repeat-count):
Throw error when count <= 0 to ensure input is a number.
(gdb-read-memory-custom): Pick up address from buffer.
(gdb-memory-mode): Allow user to increment and decrement
memory address from header line.
author | Nick Roberts <nickrob@snap.net.nz> |
---|---|
date | Sun, 29 May 2005 10:48:29 +0000 |
parents | b02a3533f7c2 |
children | 3114c221f6b4 |
files | lisp/progmodes/gdb-ui.el |
diffstat | 1 files changed, 39 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/progmodes/gdb-ui.el Sun May 29 10:47:05 2005 +0000 +++ b/lisp/progmodes/gdb-ui.el Sun May 29 10:48:29 2005 +0000 @@ -1766,7 +1766,11 @@ gdb-read-memory-handler gdb-read-memory-custom) -(defun gdb-read-memory-custom ()) +(defun gdb-read-memory-custom () + (save-excursion + (goto-char (point-min)) + (if (looking-at "0x[[:xdigit:]]+") + (setq gdb-memory-address (match-string 0))))) (defvar gdb-memory-mode-map (let ((map (make-sparse-keymap))) @@ -1790,8 +1794,8 @@ (select-window (posn-window (event-start event))) (let* ((arg (read-from-minibuffer "Repeat count: ")) (count (string-to-number arg))) - (if (< count 0) - (error "Non-negative numbers only") + (if (<= count 0) + (error "Positive numbers only") (customize-set-variable 'gdb-memory-repeat-count count) (gdb-invalidate-memory))))) @@ -1944,7 +1948,38 @@ (setq header-line-format '(:eval (concat - "Read address: " + "Read address[" + (propertize + "-" + 'face font-lock-warning-face + 'help-echo "mouse-1: Decrement address" + 'mouse-face 'mode-line-highlight + 'local-map + (gdb-make-header-line-mouse-map + 'mouse-1 + #'(lambda () (interactive) + (let ((gdb-memory-address + ;; let GDB do the arithmetic + (concat + gdb-memory-address " - " + (number-to-string + (* gdb-memory-repeat-count + (cond ((string= gdb-memory-unit "b") 1) + ((string= gdb-memory-unit "h") 2) + ((string= gdb-memory-unit "w") 4) + ((string= gdb-memory-unit "g") 8))))))) + (gdb-invalidate-memory))))) + "|" + (propertize "+" + 'face font-lock-warning-face + 'help-echo "mouse-1: Increment address" + 'mouse-face 'mode-line-highlight + 'local-map (gdb-make-header-line-mouse-map + 'mouse-1 + #'(lambda () (interactive) + (let ((gdb-memory-address nil)) + (gdb-invalidate-memory))))) + "]: " (propertize gdb-memory-address 'face font-lock-warning-face 'help-echo "mouse-1: Set memory address"