diff options
| -rw-r--r-- | lisp/progmodes/gdb-ui.el | 37 |
1 files changed, 25 insertions, 12 deletions
diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el index 5afaf9c9a66..958aaac33d4 100644 --- a/lisp/progmodes/gdb-ui.el +++ b/lisp/progmodes/gdb-ui.el | |||
| @@ -1661,10 +1661,13 @@ static char *magick[] = { | |||
| 1661 | (defvar breakpoint-disabled-icon nil | 1661 | (defvar breakpoint-disabled-icon nil |
| 1662 | "Icon for disabled breakpoint in display margin.") | 1662 | "Icon for disabled breakpoint in display margin.") |
| 1663 | 1663 | ||
| 1664 | ;; Bitmap for breakpoint in fringe | ||
| 1665 | (and (display-images-p) | 1664 | (and (display-images-p) |
| 1665 | ;; Bitmap for breakpoint in fringe | ||
| 1666 | (define-fringe-bitmap 'breakpoint | 1666 | (define-fringe-bitmap 'breakpoint |
| 1667 | "\x3c\x7e\xff\xff\xff\xff\x7e\x3c")) | 1667 | "\x3c\x7e\xff\xff\xff\xff\x7e\x3c") |
| 1668 | ;; Bitmap for gud-overlay-arrow in fringe | ||
| 1669 | (define-fringe-bitmap 'hollow-right-triangle | ||
| 1670 | "\xe0\x90\x88\x84\x84\x88\x90\xe0")) | ||
| 1668 | 1671 | ||
| 1669 | (defface breakpoint-enabled | 1672 | (defface breakpoint-enabled |
| 1670 | '((t | 1673 | '((t |
| @@ -1920,11 +1923,11 @@ static char *magick[] = { | |||
| 1920 | 1923 | ||
| 1921 | (def-gdb-auto-updated-buffer gdb-stack-buffer | 1924 | (def-gdb-auto-updated-buffer gdb-stack-buffer |
| 1922 | gdb-invalidate-frames | 1925 | gdb-invalidate-frames |
| 1923 | "server where\n" | 1926 | "server info stack\n" |
| 1924 | gdb-info-frames-handler | 1927 | gdb-info-stack-handler |
| 1925 | gdb-info-frames-custom) | 1928 | gdb-info-stack-custom) |
| 1926 | 1929 | ||
| 1927 | (defun gdb-info-frames-custom () | 1930 | (defun gdb-info-stack-custom () |
| 1928 | (with-current-buffer (gdb-get-buffer 'gdb-stack-buffer) | 1931 | (with-current-buffer (gdb-get-buffer 'gdb-stack-buffer) |
| 1929 | (save-excursion | 1932 | (save-excursion |
| 1930 | (let ((buffer-read-only nil) | 1933 | (let ((buffer-read-only nil) |
| @@ -1985,7 +1988,7 @@ static char *magick[] = { | |||
| 1985 | map)) | 1988 | map)) |
| 1986 | 1989 | ||
| 1987 | (defun gdb-frames-mode () | 1990 | (defun gdb-frames-mode () |
| 1988 | "Major mode for gdb frames. | 1991 | "Major mode for gdb call stack. |
| 1989 | 1992 | ||
| 1990 | \\{gdb-frames-mode-map}" | 1993 | \\{gdb-frames-mode-map}" |
| 1991 | (kill-all-local-variables) | 1994 | (kill-all-local-variables) |
| @@ -2066,15 +2069,13 @@ static char *magick[] = { | |||
| 2066 | map)) | 2069 | map)) |
| 2067 | 2070 | ||
| 2068 | (defvar gdb-threads-font-lock-keywords | 2071 | (defvar gdb-threads-font-lock-keywords |
| 2069 | '( | 2072 | '((") +\\([^ ]+\\) (" (1 font-lock-function-name-face)) |
| 2070 | (") +\\([^ ]+\\) (" (1 font-lock-function-name-face)) | ||
| 2071 | ("in \\([^ ]+\\) (" (1 font-lock-function-name-face)) | 2073 | ("in \\([^ ]+\\) (" (1 font-lock-function-name-face)) |
| 2072 | ("\\(\\(\\sw\\|[_.]\\)+\\)=" (1 font-lock-variable-name-face)) | 2074 | ("\\(\\(\\sw\\|[_.]\\)+\\)=" (1 font-lock-variable-name-face))) |
| 2073 | ) | ||
| 2074 | "Font lock keywords used in `gdb-threads-mode'.") | 2075 | "Font lock keywords used in `gdb-threads-mode'.") |
| 2075 | 2076 | ||
| 2076 | (defun gdb-threads-mode () | 2077 | (defun gdb-threads-mode () |
| 2077 | "Major mode for gdb frames. | 2078 | "Major mode for gdb threads. |
| 2078 | 2079 | ||
| 2079 | \\{gdb-threads-mode-map}" | 2080 | \\{gdb-threads-mode-map}" |
| 2080 | (kill-all-local-variables) | 2081 | (kill-all-local-variables) |
| @@ -2787,6 +2788,7 @@ Kills the gdb buffers, and resets variables and the source buffers." | |||
| 2787 | (setq gdb-overlay-arrow-position nil)) | 2788 | (setq gdb-overlay-arrow-position nil)) |
| 2788 | (setq overlay-arrow-variable-list | 2789 | (setq overlay-arrow-variable-list |
| 2789 | (delq 'gdb-overlay-arrow-position overlay-arrow-variable-list)) | 2790 | (delq 'gdb-overlay-arrow-position overlay-arrow-variable-list)) |
| 2791 | (setcdr (assoc 'overlay-arrow fringe-indicator-alist) 'right-triangle) | ||
| 2790 | (if (and (boundp 'speedbar-frame) (frame-live-p speedbar-frame)) | 2792 | (if (and (boundp 'speedbar-frame) (frame-live-p speedbar-frame)) |
| 2791 | (speedbar-refresh)) | 2793 | (speedbar-refresh)) |
| 2792 | (setq gud-running nil) | 2794 | (setq gud-running nil) |
| @@ -3112,6 +3114,17 @@ BUFFER nil or omitted means use the current buffer." | |||
| 3112 | (goto-char (point-min)) | 3114 | (goto-char (point-min)) |
| 3113 | (if (re-search-forward "Stack level \\([0-9]+\\)" nil t) | 3115 | (if (re-search-forward "Stack level \\([0-9]+\\)" nil t) |
| 3114 | (setq gdb-frame-number (match-string 1))) | 3116 | (setq gdb-frame-number (match-string 1))) |
| 3117 | (if gud-overlay-arrow-position | ||
| 3118 | (let ((buffer (marker-buffer gud-overlay-arrow-position)) | ||
| 3119 | (position (marker-position gud-overlay-arrow-position))) | ||
| 3120 | (when buffer | ||
| 3121 | (with-current-buffer buffer | ||
| 3122 | (setcdr (assoc 'overlay-arrow fringe-indicator-alist) | ||
| 3123 | (if (string-equal gdb-frame-number "0") | ||
| 3124 | 'right-triangle | ||
| 3125 | 'hollow-right-triangle)) | ||
| 3126 | (setq gud-overlay-arrow-position (make-marker)) | ||
| 3127 | (set-marker gud-overlay-arrow-position position))))) | ||
| 3115 | (goto-char (point-min)) | 3128 | (goto-char (point-min)) |
| 3116 | (if (re-search-forward | 3129 | (if (re-search-forward |
| 3117 | ".*=\\s-+0x0*\\(\\S-*\\)\\s-+in\\s-+\\(\\S-*?\\);? " nil t) | 3130 | ".*=\\s-+0x0*\\(\\S-*\\)\\s-+in\\s-+\\(\\S-*?\\);? " nil t) |