# HG changeset patch # User Nick Roberts # Date 1132282041 0 # Node ID 6ea7a55384175d65379e4c8ce1834b924ec150ac # Parent 243cef8d7946deab59493c7725c9d608918a560e (gdb-ann3): Move definition of gud-pp to here. Make it work in the speedbar. (gdb-find-watch-expression): New function. diff -r 243cef8d7946 -r 6ea7a5538417 lisp/progmodes/gdb-ui.el --- 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]