(gdb-ann3): Move definition of gud-pp to here.

Make it work in the speedbar.
(gdb-find-watch-expression): New function.
This commit is contained in:
Nick Roberts 2005-11-18 02:47:21 +00:00
parent 3d18d67771
commit 4130aa2c84

View file

@ -337,6 +337,15 @@ With arg, use separate IO iff arg is positive."
(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 @@ With arg, use separate IO iff arg is positive."
(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]