mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 10:30:25 -08:00
(gdb-mouse-until, gdb-mouse-jump): Make them
work when there is just an assembler buffer (no source buffer).
This commit is contained in:
parent
b773b623c9
commit
45ab7a6632
1 changed files with 51 additions and 48 deletions
|
|
@ -611,29 +611,30 @@ With arg, use separate IO iff arg is positive."
|
|||
The destination source line can be selected either by clicking with mouse-2
|
||||
on the fringe/margin or dragging the arrow with mouse-1 (default bindings)."
|
||||
(interactive "e")
|
||||
(if gud-overlay-arrow-position
|
||||
(let ((start (event-start event))
|
||||
(end (event-end event))
|
||||
(buffer (marker-buffer gud-overlay-arrow-position)) (line))
|
||||
(if (not (string-match "Machine" mode-name))
|
||||
(if (equal buffer (window-buffer (posn-window end)))
|
||||
(with-current-buffer buffer
|
||||
(when (or (equal start end)
|
||||
(equal (posn-point start)
|
||||
(marker-position
|
||||
gud-overlay-arrow-position)))
|
||||
(setq line (line-number-at-pos (posn-point end)))
|
||||
(gud-call (concat "until " (number-to-string line))))))
|
||||
(if (equal (marker-buffer gdb-overlay-arrow-position)
|
||||
(window-buffer (posn-window end)))
|
||||
(when (or (equal start end)
|
||||
(equal (posn-point start)
|
||||
(marker-position
|
||||
gdb-overlay-arrow-position)))
|
||||
(save-excursion
|
||||
(goto-line (line-number-at-pos (posn-point end)))
|
||||
(forward-char 2)
|
||||
(gud-call (concat "until *%a")))))))))
|
||||
(let ((start (event-start event))
|
||||
(end (event-end event)))
|
||||
(if gud-overlay-arrow-position
|
||||
(let ((buffer (marker-buffer gud-overlay-arrow-position)) (line))
|
||||
(if (equal buffer (window-buffer (posn-window end)))
|
||||
(with-current-buffer buffer
|
||||
(when (or (equal start end)
|
||||
(equal (posn-point start)
|
||||
(marker-position
|
||||
gud-overlay-arrow-position)))
|
||||
(setq line (line-number-at-pos (posn-point end)))
|
||||
(gud-call (concat "until " (number-to-string line))))))))
|
||||
(if gdb-overlay-arrow-position
|
||||
(let ((buffer (marker-buffer gdb-overlay-arrow-position)))
|
||||
(if (equal buffer (window-buffer (posn-window end)))
|
||||
(with-current-buffer buffer
|
||||
(when (or (equal start end)
|
||||
(equal (posn-point start)
|
||||
(marker-position
|
||||
gdb-overlay-arrow-position)))
|
||||
(save-excursion
|
||||
(goto-line (line-number-at-pos (posn-point end)))
|
||||
(forward-char 2)
|
||||
(gud-call (concat "until *%a"))))))))))
|
||||
|
||||
(defun gdb-mouse-jump (event)
|
||||
"Set execution address/line.
|
||||
|
|
@ -642,32 +643,34 @@ on the fringe/margin or dragging the arrow with mouse-1 (default bindings).
|
|||
Unlike gdb-mouse-until the destination address can be before the current
|
||||
line, and no execution takes place."
|
||||
(interactive "e")
|
||||
(if gud-overlay-arrow-position
|
||||
(let ((start (event-start event))
|
||||
(end (event-end event))
|
||||
(buffer (marker-buffer gud-overlay-arrow-position)) (line))
|
||||
(if (not (string-match "Machine" mode-name))
|
||||
(if (equal buffer (window-buffer (posn-window end)))
|
||||
(with-current-buffer buffer
|
||||
(when (or (equal start end)
|
||||
(equal (posn-point start)
|
||||
(marker-position
|
||||
gud-overlay-arrow-position)))
|
||||
(setq line (line-number-at-pos (posn-point end)))
|
||||
(progn (gud-call (concat "tbreak " (number-to-string line)))
|
||||
(gud-call (concat "jump " (number-to-string line)))))))
|
||||
(if (equal (marker-buffer gdb-overlay-arrow-position)
|
||||
(window-buffer (posn-window end)))
|
||||
(when (or (equal start end)
|
||||
(equal (posn-point start)
|
||||
(marker-position
|
||||
gdb-overlay-arrow-position)))
|
||||
(save-excursion
|
||||
(goto-line (line-number-at-pos (posn-point end)))
|
||||
(forward-char 2)
|
||||
(let ((start (event-start event))
|
||||
(end (event-end event)))
|
||||
(if gud-overlay-arrow-position
|
||||
(let ((buffer (marker-buffer gud-overlay-arrow-position)) (line))
|
||||
(if (equal buffer (window-buffer (posn-window end)))
|
||||
(with-current-buffer buffer
|
||||
(when (or (equal start end)
|
||||
(equal (posn-point start)
|
||||
(marker-position
|
||||
gud-overlay-arrow-position)))
|
||||
(setq line (line-number-at-pos (posn-point end)))
|
||||
(progn
|
||||
(gud-call (concat "tbreak *%a"))
|
||||
(gud-call (concat "jump *%a"))))))))))
|
||||
(gud-call (concat "tbreak " (number-to-string line)))
|
||||
(gud-call (concat "jump " (number-to-string line)))))))))
|
||||
(if gdb-overlay-arrow-position
|
||||
(let ((buffer (marker-buffer gdb-overlay-arrow-position)))
|
||||
(if (equal buffer (window-buffer (posn-window end)))
|
||||
(with-current-buffer buffer
|
||||
(when (or (equal start end)
|
||||
(equal (posn-point start)
|
||||
(marker-position
|
||||
gdb-overlay-arrow-position)))
|
||||
(save-excursion
|
||||
(goto-line (line-number-at-pos (posn-point end)))
|
||||
(forward-char 2)
|
||||
(progn
|
||||
(gud-call (concat "tbreak *%a"))
|
||||
(gud-call (concat "jump *%a")))))))))))
|
||||
|
||||
(defcustom gdb-speedbar-auto-raise nil
|
||||
"If non-nil raise speedbar every time display of watch expressions is\
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue