(define-key map [mouse-3] 'dbgr-goto-frame-mouse)
(define-key map [up] 'dbgr-backtrace-moveto-frame-prev)
(define-key map [down] 'dbgr-backtrace-moveto-frame-next)
+ (define-key map "l" 'dbgr-recenter-arrow)
- ;; FIXME: these can go to a common routine. See also shortkey.el
+ ;; FIXME: these can go to a common routine. See also shortkey.el and
+ ;; key.el
(define-key map "<" 'dbgr-cmd-newer-frame)
(define-key map ">" 'dbgr-cmd-older-frame)
(define-key map "d" 'dbgr-cmd-newer-frame)
(define-key map "u" 'dbgr-cmd-older-frame)
- (define-key map "l" 'dbgr-recenter-arrow)
- (define-key map "C" 'dbgr-window-cmd-undisturb-src)
- (define-key map "S" 'dbgr-window-src-undisturb-cmd)
+ (define-key map "C" 'dbgr-window-cmd-undisturb-src)
+ (define-key map "F" 'dbgr-window-bt)
+ (define-key map "S" 'dbgr-window-src-undisturb-cmd)
(define-key map "n" 'dbgr-backtrace-moveto-frame-next)
(define-key map "p" 'dbgr-backtrace-moveto-frame-prev)
)
(with-current-buffer-safe cmdbuf
(let ((frame-pat (dbgr-cmdbuf-pat "debugger-backtrace"))
+ (indicator-re (or (dbgr-cmdbuf-pat "selected-frame-indicator")
+ "->"))
(selected-frame-num)
(frame-pos-ring)
(sleep-count 0)
(if divert-string
(let* ((triple
(dbgr-backtrace-add-text-properties frame-pat
- divert-string))
+ divert-string
+ indicator-re))
(string-with-props (car triple))
(frame-num-pos-list (caddr triple))
)
(setq dbgr-goto-entry-acc ""))
(dbgr-goto-frame-n-internal (this-command-keys)))
-(defun dbgr-backtrace-add-text-properties (frame-pat &optional opt-string)
+(defun dbgr-backtrace-add-text-properties (frame-pat &optional opt-string
+ frame-indicator-re)
"Parse STRING and add properties for that"
(let ((string (or opt-string
(let ((frame-num-str)
(frame-num)
- ;; FIXME: Sort of a hack that 1 is always the frame indicator.
+ ;; FIXME: Remove hack that 1 is always the frame indicator.
(frame-indicator
(substring string (match-beginning 1) (match-end 1)))
(frame-num-pos)
'frame-num frame-num string)
(setq last-pos (match-end 0))
- ;; FIXME: Sort of a hack, indicator has '->' somewhere in it if it is
- ;; selected.
- (if (string-match "->" frame-indicator)
+ (if (string-match frame-indicator-re frame-indicator)
(setq selected-frame-num frame-num))
))
(let ((prefix-map (make-sparse-keymap)))
(define-key map "b" 'dbgr-cmd-break)
(define-key map " " 'dbgr-cmd-step)
- (define-key map "<" 'dbgr-cmd-newer-frame)
- (define-key map ">" 'dbgr-cmd-older-frame)
- (define-key map "d" 'dbgr-cmd-newer-frame)
- (define-key map "u" 'dbgr-cmd-older-frame)
(define-key map "f" 'dbgr-cmd-finish)
(define-key map "n" 'dbgr-cmd-next)
(define-key map "q" 'dbgr-cmd-quit)
(define-key map "R" 'dbgr-cmd-restart)
(define-key map "s" 'dbgr-cmd-step)
(define-key map "!" 'dbgr-cmd-shell)
+
+ ;; FIXME: these can go to a common routine. See also shortkey.el
+ ;; and backtrace-mode.el
+ (define-key map "<" 'dbgr-cmd-newer-frame)
+ (define-key map ">" 'dbgr-cmd-older-frame)
+ (define-key map "d" 'dbgr-cmd-newer-frame)
+ (define-key map "u" 'dbgr-cmd-older-frame)
(define-key map "C" 'dbgr-window-cmd-undisturb-src)
(define-key map "F" 'dbgr-window-bt)
+ (define-key map "S" 'dbgr-window-src-undisturb-cmd)
+
(define-key map [M-down] 'dbgr-track-hist-newer)
(define-key map [M-kp-2] 'dbgr-track-hist-newer)
(define-key map [M-up] 'dbgr-track-hist-older)
"Hash key is command name like 'quit' and the value is
the perldb command to use, like 'q'")
+(setf (gethash "font-lock-keywords" dbgr-perldb-pat-hash)
+ '(
+ ("\s+called from file `\\(.+\\)' line \\([0-9]+\\)"
+ (1 dbgr-file-name-face)
+ (2 dbgr-line-number-face))
+ ))
+
+
+(setf (gethash "perldb" dbgr-pat-hash) dbgr-perldb-pat-hash)
+
(setf (gethash "backtrace" dbgr-perldb-command-hash) "T")
(setf (gethash "break" dbgr-perldb-command-hash) "b %l")
(setf (gethash "continue" dbgr-perldb-command-hash) "c")
(setf (gethash "next" dbgr-perldb-command-hash) "n")
(setf (gethash "perldb" dbgr-command-hash) dbgr-perldb-command-hash)
-(setf (gethash "perldb" dbgr-pat-hash) dbgr-perldb-pat-hash)
-
(provide-me "dbgr-perldb-")
(defconst dbgr-remake-frame-start-regexp
"\\(?:^\\|\n\\)")
-(defconst dbgr-remake-frame-arrow "\\(=>\\| \\)")
+(defconst dbgr-remake-selected-frame-arrow "=>"
+"String that describes which frame is selected in a debugger
+backtrace listing.")
+(defconst dbgr-remake-frame-arrow (format "\\(%s\\| \\)"
+ dbgr-remake-selected-frame-arrow))
(defconst dbgr-remake-frame-num-regexp
"#\\([0-9]+\\) ")
:line-group 5)
)
+;; Regular expression that describes which frame is selected in
+;; a debugger backtrace listing.
+(setf (gethash "selected-frame-indicator" dbgr-remake-pat-hash)
+ dbgr-remake-selected-frame-arrow)
+
(setf (gethash "font-lock-keywords" dbgr-remake-pat-hash)
'(
;; ;; File name and line number
:line-group 7)
)
+(defconst dbgr-trepan-selected-frame-arrow "-->"
+"String that describes which frame is selected in a debugger
+backtrace listing.")
+
+;; Regular expression that describes which frame is selected in
+;; a debugger backtrace listing.
+(setf (gethash "selected-frame-indicator" dbgr-trepan-pat-hash)
+ dbgr-trepan-selected-frame-arrow)
+
(setf (gethash "font-lock-keywords" dbgr-trepan-pat-hash)
'(
;; The frame number and first type name, if present.
- ("^\\(-->\\| \\)? #\\([0-9]+\\) \\([A-Z]+\\) *\\([A-Z_][a-zA-Z0-9_]*\\)[#]\\([a-zA-Z_][a-zA-Z_[0-9]]*\\)?"
+ (format ("^\\(%s\\| \\)? #\\([0-9]+\\) \\([A-Z]+\\) *\\([A-Z_][a-zA-Z0-9_]*\\)[#]\\([a-zA-Z_][a-zA-Z_[0-9]]*\\)?" dbgr-trepan-selected-frame-arrow)
(2 dbgr-backtrace-number-face)
(3 font-lock-keyword-face) ; e.g. METHOD, TOP
(4 font-lock-constant-face) ; e.g. Object