Mercurial > emacs
changeset 66977:6ea7a5538417
(gdb-ann3): Move definition of gud-pp to here.
Make it work in the speedbar.
(gdb-find-watch-expression): New function.
author | Nick Roberts <nickrob@snap.net.nz> |
---|---|
date | Fri, 18 Nov 2005 02:47:21 +0000 |
parents | 243cef8d7946 |
children | 40cc5f0fb379 |
files | lisp/progmodes/gdb-ui.el |
diffstat | 1 files changed, 18 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/progmodes/gdb-ui.el Fri Nov 18 02:46:06 2005 +0000 +++ b/lisp/progmodes/gdb-ui.el Fri Nov 18 02:47:21 2005 +0000 @@ -337,6 +337,15 @@ (file-name-nondirectory file) ":1\n") `(lambda () (gdb-set-gud-minor-mode ,buffer))))))))) +(defun gdb-find-watch-expression () + (let* ((var (nth (- (line-number-at-pos (point)) 2) gdb-var-list)) + (varno (nth 1 var)) (expr)) + (string-match "\\(var[0-9]+\\)\\.\\(.*\\)" varno) + (dolist (var1 gdb-var-list) + (if (string-equal (nth 1 var1) (match-string 1 varno)) + (setq expr (concat (car var1) "." (match-string 2 varno))))) + expr)) + (defun gdb-ann3 () (setq gdb-debug-log nil) (set (make-local-variable 'gud-minor-mode) 'gdba) @@ -369,6 +378,15 @@ (gud-def gud-go (gud-call (if gdb-active-process "continue" "run") arg) nil "Start or continue execution.") + ;; For debugging Emacs only. + (gud-def gud-pp + (gud-call + (concat + "pp1 " (if (eq (buffer-local-value + 'major-mode (window-buffer)) 'speedbar-mode) + (gdb-find-watch-expression) "%e")) arg) + nil "Print the emacs s-expression.") + (define-key gud-minor-mode-map [left-margin mouse-1] 'gdb-mouse-set-clear-breakpoint) (define-key gud-minor-mode-map [left-fringe mouse-1]