Skip to content

Commit

Permalink
remake and gdb breakpoint buffers + add to menu
Browse files Browse the repository at this point in the history
  • Loading branch information
rocky committed Apr 25, 2019
1 parent a6783f5 commit 06d73e1
Show file tree
Hide file tree
Showing 10 changed files with 74 additions and 11 deletions.
2 changes: 2 additions & 0 deletions realgud.el
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,8 @@
'(
"./realgud/common/attach"
"./realgud/common/track-mode"
"./realgud/common/backtrack-mode"
"./realgud/common/breakpoint-mode"
"./realgud/common/utils"
"./realgud/debugger/bashdb/bashdb"
"./realgud/debugger/gdb/gdb"
Expand Down
2 changes: 0 additions & 2 deletions realgud/common/backtrack-mode.el
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,6 @@
"fringe" "window" "regexp" "menu"
"send" "shortkey") "realgud-")

(require-relative-list '("buffer/command") "realgud-buffer-")

(declare-function realgud:debugger-name-transform 'realgud-helper)
(declare-function realgud-populate-debugger-menu 'realgud-menu)
(declare-function realgud:track-set-debugger 'realgud-track)
Expand Down
3 changes: 1 addition & 2 deletions realgud/common/buffer/backtrace.el
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,7 @@
(require-relative-list
'("../key" "helper" "../follow" "../loc") "realgud-")

(require-relative-list
'("command") "realgud-buffer-")
(require-relative-list '("command") "realgud-buffer-")

(declare-function realgud-cmdbuf-debugger-name 'realgud-buffer-command)
(declare-function realgud-cmdbuf? 'realgud-buffer-command)
Expand Down
5 changes: 3 additions & 2 deletions realgud/common/file.el
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ blanks, or deliberately ignoring 'pseudo-file patterns like (eval
If we're unable find the source code we return a string describing the
problem as best as we can determine."

(let* ((cmdbuf (realgud-get-cmdbuf))
(let* ((cmdbuf (or (realgud-get-cmdbuf) cmd-marker))
(ignore-re-file-list (realgud-cmdbuf-ignore-re-file-list cmdbuf))
(filename-remap-alist (realgud-cmdbuf-filename-remap-alist cmdbuf))
(remapped-filename
Expand Down Expand Up @@ -133,7 +133,8 @@ problem as best as we can determine."
(realgud-cmdbuf-filename-remap-alist=
(cons
(cons filename remapped-filename)
filename-remap-alist))
filename-remap-alist)
cmdbuf)
(setq filename remapped-filename)
))
;; else
Expand Down
3 changes: 3 additions & 0 deletions realgud/common/init.el
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@
:group 'realgud
:version "23.4")

(defvar realgud-address-face 'realgud-line-number
"Face name to use for addresses.")

(defvar realgud-line-number-face 'realgud-line-number
"Face name to use for line numbers.")

Expand Down
6 changes: 6 additions & 0 deletions realgud/common/menu.el
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,12 @@ menu. (The common map typically contains function key bindings.)"
:help (documentation 'realgud:window-bt)
))

(define-key debugger-map [breakpoints]
(realgud-menu-item debugger-map "Breakpoints" 'realgud:window-brkpt
:enable '(realgud-get-process)
:help (documentation 'realgud:window-brkpt)
))

(define-key debugger-map [arrow3]
(realgud-menu-item debugger-map "Arrow 3" 'realgud-goto-arrow3
:enable '(realgud-get-process)
Expand Down
17 changes: 17 additions & 0 deletions realgud/debugger/gdb/init.el
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,23 @@ realgud-loc-pat struct")
(1 realgud-backtrace-number-face))
))

(setf (gethash "font-lock-breakpoint-keywords" realgud:gdb-pat-hash)
'(
;; The breakpoint number, type and disposition
;; 1 breakpoint keep y 0x0000000000401471 in vcdnav_get_entries at ctest.c:67
;; ^ ^^^^^^^^^^ ^^^^
("^\\([0-9]+\\)[ \t]+\\(breakpoint\\)[ \t]+\\(keep\\|del\\)"
(1 realgud-breakpoint-number-face)
(2 font-lock-function-name-face nil t) ; t means optional.
(3 font-lock-function-name-face nil t)) ; t means optional.

;; 1 breakpoint keep y 0x0000000000401471 in vcdnav_get_entries at ctest.c:67
;; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^
(" in[ \t]+\\(.+*\\):\\([0-9]+\\)"
(1 realgud-file-name-face)
(2 realgud-line-number-face))
))

(setf (gethash "gdb" realgud-pat-hash) realgud:gdb-pat-hash)

;; Prefix used in variable names (e.g. short-key-mode-map) for
Expand Down
39 changes: 38 additions & 1 deletion realgud/debugger/remake/init.el
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
;; Copyright (C) 2011, 2014, 2016 Free Software Foundation, Inc
;; Copyright (C) 2011, 2014, 2016, 2019 Free Software Foundation, Inc
;; Author: Rocky Bernstein <[email protected]>

;; This program is free software; you can redistribute it and/or modify
Expand Down Expand Up @@ -113,6 +113,43 @@ backtrace listing.")
:line-group 5)
)

;; FIXME breakpoints aren't locations. It should be a different structure
;; Regular expression that describes a gdb "info breakpoint" line
;; For example:
;; 1 breakpoint keep y 0x07 ../../../config.status at /src/realgud/realgud/debugger/remake/Makefile:282
;; 2 breakpoint keep y 0x07 ../../../configure at /src/realgud/realgud/debugger/remake/Makefile:285
;; 3 breakpoint keep y 0x07 ../../../configure.ac at /src/realgud/realgud/debugger/remake/Makefile:289

(setf (gethash "debugger-breakpoint" realgud:remake-pat-hash)
(make-realgud-loc-pat
:regexp (format "^%s[ \t]+\\(breakpoint\\)[ \t]+\\(keep\\|del\\)[ \t]+\\([yn]\\)[ \t]+.\\(0x??\\) \\(.+\\):%s"
realgud:regexp-captured-num realgud:regexp-captured-num)
:num 1
:text-group 2 ;; misnamed Is "breakpoint" or "watchpoint"
:string 3 ;; misnamed. Is "keep" or "del"
;; Enable is missing
;; Skipped mask
:file-group 5
:line-group 6)
)


(setf (gethash "font-lock-breakpoint-keywords" realgud:remake-pat-hash)
'(
;; 1 breakpoint keep y 0x07 ../../../config.status at /src/external-vcs/github/rocky/realgud/realgud/debugger/remake/Makefile:282
;; ^ ^^^^^^^^^^ ^^^^ ^
("^[ \t]+\\([0-9]+\\)[ \t]+\\(breakpoint\\)[ \t]+\\(keep\\|del\\)[ \t]+\\([yn]\\)"
(1 realgud-breakpoint-number-face)
(2 font-lock-function-name-face nil t) ; t means optional.
(3 font-lock-function-name-face nil t)) ; t means optional.

;; 1 breakpoint keep y 0x07 ../../../config.status at /src/realgud/realgud/debugger/remake/Makefile:282
;; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^
(" \\(0x??\\) \\(.+\\) at \\(.+\\):\\([0-9]+\\)"
(3 realgud-file-name-face)
(4 realgud-line-number-face))
))

;; realgud-loc-pat that describes which frame is selected in
;; a debugger backtrace listing.
(setf (gethash "selected-frame-indicator" realgud:remake-pat-hash)
Expand Down
4 changes: 2 additions & 2 deletions realgud/lang/posix-shell.el
Original file line number Diff line number Diff line change
Expand Up @@ -174,10 +174,10 @@ traceback) line." )
(3 font-lock-function-name-face nil t)) ; t means optional.

;; 1 breakpoint keep y /Users/rocky/.bashrc:6
;; ^^^^^^^^^^^^^^^^^^^^^^
;; ^^^^^^^^^^^^^^^^^^^^ ^
("[ \t]+\\(.+*\\):\\([0-9]+\\)"
(1 realgud-file-name-face)
(1 realgud-line-number-face))
(2 realgud-line-number-face))
))

(provide-me "realgud-lang-")
4 changes: 2 additions & 2 deletions realgud/lang/python.el
Original file line number Diff line number Diff line change
Expand Up @@ -183,10 +183,10 @@ traceback) line." )
(3 font-lock-function-name-face nil t)) ; t means optional.

;; 1 breakpoint keep y at /home/rocky/.pyenv/versions/3.7.2/bin/trepan3k:6
;; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
;; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^
("[ \t]+at \\(.+*\\):\\([0-9]+\\)"
(1 realgud-file-name-face)
(1 realgud-line-number-face))
(2 realgud-line-number-face))
))

(defconst realgud-pytest-error-loc-pat
Expand Down

0 comments on commit 06d73e1

Please sign in to comment.