branch: externals/realgud commit 3a2e3000561d605dbafb3c5f483f6aec3c0a86de Merge: 61fbadb b86a9df Author: R. Bernstein <ro...@users.noreply.github.com> Commit: GitHub <nore...@github.com>
Merge pull request #200 from jodonnell/move-bps Move bps --- realgud/common/track.el | 45 +++++++++++++++++++++++++-------------------- test/test-track.el | 19 ++++++++++++------- 2 files changed, 37 insertions(+), 27 deletions(-) diff --git a/realgud/common/track.el b/realgud/common/track.el index e81ba90..73fc0f1 100644 --- a/realgud/common/track.el +++ b/realgud/common/track.el @@ -237,18 +237,12 @@ evaluating (realgud-cmdbuf-info-loc-regexp realgud-cmdbuf-info)" ;; put into a list and iterate over that. (realgud-track-termination? text) (setq text-sans-loc (or (realgud-track-loc-remaining text) text)) - (realgud-track-bp-enable-disable text-sans-loc - (realgud-cmdbuf-pat "brkpt-enable") - 't) - (realgud-track-bp-enable-disable text-sans-loc - (realgud-cmdbuf-pat "brkpt-disable") - nil) (setq frame-num (realgud-track-selected-frame text)) (if (and frame-num (not loc)) (setq loc (realgud-track-loc-from-selected-frame text cmd-mark))) - (realgud:track-add-breakpoint (realgud-track-bp-loc text-sans-loc cmd-mark cmdbuf) cmdbuf) + (realgud:track-handle-breakpoints text-sans-loc cmd-mark cmdbuf) (if loc (let ((selected-frame @@ -257,27 +251,38 @@ evaluating (realgud-cmdbuf-info-loc-regexp realgud-cmdbuf-info)" (realgud-track-loc-action loc cmdbuf (not selected-frame) shortkey-on-tracing?) (realgud-cmdbuf-info-in-debugger?= 't) - (realgud-cmdbuf-mode-line-update)) - (realgud:track-remove-breakpoints - (realgud-track-bp-delete text-sans-loc cmd-mark cmdbuf) - cmdbuf)) + (realgud-cmdbuf-mode-line-update))) + ) ) ) ) ) -(defun realgud:track-add-breakpoint (bp-loc cmdbuf) - "Add a breakpoint fringe in source window if BP-LOC." - (if bp-loc - (let ((src-buffer (realgud-loc-goto bp-loc))) - (realgud-cmdbuf-add-srcbuf src-buffer cmdbuf) - (with-current-buffer src-buffer - (realgud-bp-add-info bp-loc))))) +(defun realgud:track-handle-breakpoints (text-sans-loc cmd-mark cmdbuf) + (realgud:track-add-breakpoint text-sans-loc cmd-mark cmdbuf) + (realgud:track-remove-breakpoints text-sans-loc cmd-mark cmdbuf)) -(defun realgud:track-remove-breakpoints (bp-locs cmdbuf) +(defun realgud:track-add-breakpoint (text-sans-loc cmd-mark cmdbuf) + "Add a breakpoint fringe in source window if BP-LOC." + (realgud-track-bp-enable-disable text-sans-loc + (realgud-cmdbuf-pat "brkpt-enable") + 't) + + (let ((bp-loc (realgud-track-bp-loc text-sans-loc cmd-mark cmdbuf))) + (if bp-loc + (let ((src-buffer (realgud-loc-goto bp-loc))) + (realgud-cmdbuf-add-srcbuf src-buffer cmdbuf) + (with-current-buffer src-buffer + (realgud-bp-add-info bp-loc)))))) + +(defun realgud:track-remove-breakpoints (text-sans-loc cmd-mark cmdbuf) "Remove all breakpoints in source window found in BP-LOCS." - (dolist (bp-loc bp-locs) + (realgud-track-bp-enable-disable text-sans-loc + (realgud-cmdbuf-pat "brkpt-disable") + nil) + + (dolist (bp-loc (realgud-track-bp-delete text-sans-loc cmd-mark cmdbuf)) (let ((src-buffer (realgud-loc-goto bp-loc))) (realgud-cmdbuf-add-srcbuf src-buffer cmdbuf) (with-current-buffer src-buffer diff --git a/test/test-track.el b/test/test-track.el index bcae4e0..b8882ca 100644 --- a/test/test-track.el +++ b/test/test-track.el @@ -10,6 +10,9 @@ (load-file "../realgud/common/utils.el") (load-file "../realgud/debugger/trepan/core.el") (load-file "../realgud/debugger/trepan/init.el") +(load-file "../realgud/debugger/pdb/core.el") +(load-file "../realgud/debugger/pdb/init.el") +(load-file "../realgud/debugger/pdb/track-mode.el") (declare-function __FILE__ 'load-relative) (declare-function realgud-cmdbuf-init 'realgud-buffer-command) @@ -142,18 +145,20 @@ trepan: That's all, folks... (insert "if 1:\n x = x + 1\n")) (setq test-buffer (find-file "test_file.py")) -(realgud-cmdbuf-init test-buffer "trepan" - (gethash "trepan" realgud-pat-hash)) +(realgud-cmdbuf-init test-buffer "pdb" + (gethash "pdb" realgud-pat-hash)) (setq bp-num 1) -(setq debugger-bp-output (format "Breakpoint %d set at line %d\n\tin file %s." - bp-num 1 buffer-file-name)) +(setq debugger-bp-output (format "Breakpoint %d at %s:%d\n" + bp-num buffer-file-name 1)) + +(setq debugger-bp-delete-output (format "Deleted breakpoint %d at %s:%d\n" + bp-num buffer-file-name 1)) (save-excursion - (setq bp-loc (realgud-track-bp-loc debugger-bp-output nil)) (let ((num-overlays (length (overlays-in 0 (point-max))))) - (realgud:track-add-breakpoint bp-loc test-buffer) + (realgud:track-add-breakpoint debugger-bp-output nil test-buffer) (assert-equal (+ 1 num-overlays) (length (overlays-in 0 (point-max)))) - (realgud:track-remove-breakpoints (list bp-loc) (current-buffer)) + (realgud:track-remove-breakpoints debugger-bp-delete-output nil test-buffer) (assert-equal num-overlays (length (overlays-in 0 (point-max)))))) (kill-buffer "test_file.py") (delete-file "test_file.py")