# HG changeset patch # User Nick Roberts # Date 1088846472 0 # Node ID a76e88488fd71123399af1d1cc34e94ec04fad69 # Parent df8813d5ceabffbc1c72cd14b43c65ec4c63aa84 (gdb-goto-breakpoint): String match more carefully. (gdb-delete-breakpoint, gdb-toggle-breakpoint): Handle gdbmi. diff -r df8813d5ceab -r a76e88488fd7 lisp/progmodes/gdb-ui.el --- a/lisp/progmodes/gdb-ui.el Sat Jul 03 09:20:09 2004 +0000 +++ b/lisp/progmodes/gdb-ui.el Sat Jul 03 09:21:12 2004 +0000 @@ -1202,48 +1202,52 @@ (interactive) (save-excursion (beginning-of-line 1) - (if (not (looking-at "\\([0-9]+\\).*point\\s-*\\S-*\\s-*\\(.\\)")) - (error "Not recognized as break/watchpoint line") - (gdb-enqueue-input - (list - (concat - (if (eq ?y (char-after (match-beginning 2))) - (concat gdb-server-prefix "disable ") - (concat gdb-server-prefix "enable ")) - (match-string 1) "\n") - 'ignore))))) + (if (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba)) + (looking-at "\\([0-9]+\\).*point\\s-*\\S-*\\s-*\\(.\\)") + (looking-at + "\\([0-9]+\\)\\s-*\\S-*\\s-*\\S-*\\s-*\\(.\\)\\s-*\\S-*\\s-*\\S-*:[0-9]+")) + (gdb-enqueue-input + (list + (concat gdb-server-prefix + (if (eq ?y (char-after (match-beginning 2))) + "disable " + "enable ") + (match-string 1) "\n") 'ignore)) + (error "Not recognized as break/watchpoint line")))) (defun gdb-delete-breakpoint () "Delete the breakpoint at current line." (interactive) (beginning-of-line 1) - (if (not (looking-at "\\([0-9]+\\).*point\\s-*\\S-*\\s-*\\(.\\)")) - (error "Not recognized as break/watchpoint line") - (gdb-enqueue-input - (list (concat gdb-server-prefix "delete " (match-string 1) "\n") 'ignore)))) + (if (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba)) + (looking-at "\\([0-9]+\\).*point\\s-*\\S-*\\s-*\\(.\\)") + (looking-at + "\\([0-9]+\\)\\s-*\\S-*\\s-*\\S-*\\s-*.\\s-*\\S-*\\s-*\\S-*:[0-9]+")) + (gdb-enqueue-input + (list + (concat gdb-server-prefix "delete " (match-string 1) "\n") 'ignore)) + (error "Not recognized as break/watchpoint line"))) (defun gdb-goto-breakpoint () "Display the breakpoint location specified at current line." (interactive) (save-excursion (beginning-of-line 1) - (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba)) - (progn - (re-search-forward "in\\s-+\\S-+\\s-+at\\s-+" nil t) - (looking-at "\\(\\S-*\\):\\([0-9]+\\)")) - (looking-at - "[0-9]*\\s-*\\S-*\\s-*\\S-*\\s-*.\\s-*\\S-*\\s-*\\(\\S-*\\):\\([0-9]+\\)"))) - (if (match-string 2) - (let ((line (match-string 2)) - (file (match-string 1))) - (save-selected-window - (let* ((buf (find-file-noselect (if (file-exists-p file) - file - (expand-file-name file gdb-cdir)))) - (window (gdb-display-buffer buf))) - (with-current-buffer buf - (goto-line (string-to-number line)) - (set-window-point window (point)))))))) + (if (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba)) + (looking-at ".*in\\s-+\\S-+\\s-+at\\s-+\\(\\S-*\\):\\([0-9]+\\)") + (looking-at + "[0-9]+\\s-*\\S-*\\s-*\\S-*\\s-*.\\s-*\\S-*\\s-*\\(\\S-*\\):\\([0-9]+\\)")) + (let ((line (match-string 2)) + (file (match-string 1))) + (save-selected-window + (let* ((buf (find-file-noselect (if (file-exists-p file) + file + (expand-file-name file gdb-cdir)))) + (window (gdb-display-buffer buf))) + (with-current-buffer buf + (goto-line (string-to-number line)) + (set-window-point window (point)))))) + (error "Not recognized as break/watchpoint line")))) (defun gdb-mouse-goto-breakpoint (event) "Display the breakpoint location that you click on."