diff options
| author | Nick Roberts | 2003-08-24 20:40:03 +0000 |
|---|---|---|
| committer | Nick Roberts | 2003-08-24 20:40:03 +0000 |
| commit | 32d369ac52866ddcbbddbbd5d7f40082ad2af57e (patch) | |
| tree | 36f9c1c6e91de0557629a5557e17254fc8b94641 | |
| parent | a1c6b6e51c61eba227baf4b0912c9a1237425e6b (diff) | |
| download | emacs-32d369ac52866ddcbbddbbd5d7f40082ad2af57e.tar.gz emacs-32d369ac52866ddcbbddbbd5d7f40082ad2af57e.zip | |
(gdba): Remove gdb-quit (previously removed) from
documentation.
(gdb-source, gdb-source-info): Update to assembler unnecessary
as its done after each GDB command anyway.
(gdb-pre-prompt): Use with-current-buffer.
(gdb-insert-field): Add help-echo text.
(gdb-invalidate-assembler): Re-display of assembler now done in
gdb-info-breakpoints-custom.
(gdb-info-breakpoints-custom): Force re-display of assembler to
happen *after* update of breakpoints buffer.
(gdb-display-source-buffer): Don't choke if gdb-source-window
isn't visible.
(gdb-put-string, gdb-put-arrow): Remove free variables.
| -rw-r--r-- | lisp/gdb-ui.el | 104 |
1 files changed, 38 insertions, 66 deletions
diff --git a/lisp/gdb-ui.el b/lisp/gdb-ui.el index c49be50d8b7..c092ca316ac 100644 --- a/lisp/gdb-ui.el +++ b/lisp/gdb-ui.el | |||
| @@ -121,9 +121,7 @@ Pointers in structures may be followed in a tree-like fashion. | |||
| 121 | The following interactive lisp functions help control operation : | 121 | The following interactive lisp functions help control operation : |
| 122 | 122 | ||
| 123 | `gdb-many-windows' - Toggle the number of windows gdb uses. | 123 | `gdb-many-windows' - Toggle the number of windows gdb uses. |
| 124 | `gdb-restore-windows' - To restore the window layout. | 124 | `gdb-restore-windows' - To restore the window layout." |
| 125 | `gdb-quit' - To delete (most) of the buffers used by GDB-UI and | ||
| 126 | reset variables." | ||
| 127 | ;; | 125 | ;; |
| 128 | (interactive (list (gud-query-cmdline 'gdba))) | 126 | (interactive (list (gud-query-cmdline 'gdba))) |
| 129 | ;; | 127 | ;; |
| @@ -570,9 +568,7 @@ This filter may simply queue output for a later time." | |||
| 570 | (match-string 1 args) | 568 | (match-string 1 args) |
| 571 | (string-to-int (match-string 2 args)))) | 569 | (string-to-int (match-string 2 args)))) |
| 572 | (setq gdb-current-address (match-string 3 args)) | 570 | (setq gdb-current-address (match-string 3 args)) |
| 573 | (setq gdb-view-source t) | 571 | (setq gdb-view-source t)) |
| 574 | ;;update with new frame for machine code if necessary | ||
| 575 | (gdb-invalidate-assembler)) | ||
| 576 | 572 | ||
| 577 | (defun gdb-send-item (item) | 573 | (defun gdb-send-item (item) |
| 578 | (gdb-set-current-item item) | 574 | (gdb-set-current-item item) |
| @@ -596,9 +592,7 @@ output from a previous command if that happens to be in effect." | |||
| 596 | (gdb-set-output-sink 'post-emacs) | 592 | (gdb-set-output-sink 'post-emacs) |
| 597 | (let ((handler | 593 | (let ((handler |
| 598 | (car (cdr (gdb-get-current-item))))) | 594 | (car (cdr (gdb-get-current-item))))) |
| 599 | (save-excursion | 595 | (with-current-buffer (gdb-get-create-buffer 'gdb-partial-output-buffer) |
| 600 | (set-buffer (gdb-get-create-buffer | ||
| 601 | 'gdb-partial-output-buffer)) | ||
| 602 | (funcall handler)))) | 596 | (funcall handler)))) |
| 603 | (t | 597 | (t |
| 604 | (gdb-set-output-sink 'user) | 598 | (gdb-set-output-sink 'user) |
| @@ -945,8 +939,11 @@ output from the current command if that happens to be appropriate." | |||
| 945 | (insert-buffer-substring (gdb-get-buffer | 939 | (insert-buffer-substring (gdb-get-buffer |
| 946 | 'gdb-partial-output-buffer) | 940 | 'gdb-partial-output-buffer) |
| 947 | start end) | 941 | start end) |
| 948 | (add-text-properties (- (point) (- end start)) (- (point) 1) | 942 | (add-text-properties |
| 949 | `(mouse-face highlight local-map ,gdb-dive-map)))) | 943 | (- (point) (- end start)) (- (point) 1) |
| 944 | `(mouse-face highlight | ||
| 945 | local-map ,gdb-dive-map | ||
| 946 | help-echo "mouse-2: dive, S-mouse-2: dive in a new frame")))) | ||
| 950 | (delete-region start end))) | 947 | (delete-region start end))) |
| 951 | 948 | ||
| 952 | (defvar gdb-values nil) | 949 | (defvar gdb-values nil) |
| @@ -1396,7 +1393,8 @@ static char *magick[] = { | |||
| 1396 | (if (eq ?y flag) | 1393 | (if (eq ?y flag) |
| 1397 | (gdb-put-string "B" (+ start 1)) | 1394 | (gdb-put-string "B" (+ start 1)) |
| 1398 | (gdb-put-string "b" (+ start 1)))))))))))) | 1395 | (gdb-put-string "b" (+ start 1)))))))))))) |
| 1399 | (end-of-line)))))) | 1396 | (end-of-line))))) |
| 1397 | (if (gdb-get-buffer 'gdb-assembler-buffer) (gdb-assembler-custom))) | ||
| 1400 | 1398 | ||
| 1401 | (defun gdb-breakpoints-buffer-name () | 1399 | (defun gdb-breakpoints-buffer-name () |
| 1402 | (with-current-buffer gud-comint-buffer | 1400 | (with-current-buffer gud-comint-buffer |
| @@ -1482,36 +1480,6 @@ current line." | |||
| 1482 | file | 1480 | file |
| 1483 | (expand-file-name file gdb-cdir)))) | 1481 | (expand-file-name file gdb-cdir)))) |
| 1484 | (goto-line (string-to-number line)))))) | 1482 | (goto-line (string-to-number line)))))) |
| 1485 | ;; I'll get this to work one day! | ||
| 1486 | ;; (defun gdb-goto-breakpoint () | ||
| 1487 | ;; "Display the file in the source buffer at the breakpoint specified on the | ||
| 1488 | ;; current line." | ||
| 1489 | ;; (interactive) | ||
| 1490 | ;; (save-excursion | ||
| 1491 | ;; (let ((eol (progn (end-of-line) (point)))) | ||
| 1492 | ;; (beginning-of-line 1) | ||
| 1493 | ;; (if (re-search-forward "\\(\\S-*\\):\\([0-9]+\\)" eol t) | ||
| 1494 | ;; (let ((line (match-string 2)) | ||
| 1495 | ;; (file (match-string 1))) | ||
| 1496 | ;; (save-selected-window | ||
| 1497 | ;; (select-window gdb-source-window) | ||
| 1498 | ;; (switch-to-buffer (find-file-noselect | ||
| 1499 | ;; (if (file-exists-p file) | ||
| 1500 | ;; file | ||
| 1501 | ;; (expand-file-name file gdb-cdir)))) | ||
| 1502 | ;; (goto-line (string-to-number line)))))) | ||
| 1503 | ;; (let ((eol (progn (end-of-line) (point)))) | ||
| 1504 | ;; (beginning-of-line 1) | ||
| 1505 | ;; (if (re-search-forward "<\\(\\S-*?\\)\\(\\+*[0-9]*\\)>" eol t) | ||
| 1506 | ;; (save-selected-window | ||
| 1507 | ;; (select-window gdb-source-window) | ||
| 1508 | ;; (gdb-get-create-buffer 'gdb-assembler-buffer) | ||
| 1509 | ;; (gdb-enqueue-input | ||
| 1510 | ;; (list (concat "server disassemble " (match-string 1) "\n") | ||
| 1511 | ;; 'gdb-assembler-handler)) | ||
| 1512 | ;; (with-current-buffer (gdb-get-buffer 'gdb-assembler-buffer) | ||
| 1513 | ;; (re-search-forward | ||
| 1514 | ;; (concat (match-string 1) (match-string 2))))))))) | ||
| 1515 | 1483 | ||
| 1516 | (defun gdb-mouse-goto-breakpoint (event) | 1484 | (defun gdb-mouse-goto-breakpoint (event) |
| 1517 | "Display the file in the source buffer at the selected breakpoint." | 1485 | "Display the file in the source buffer at the selected breakpoint." |
| @@ -1960,7 +1928,7 @@ the source buffer." | |||
| 1960 | (unwind-protect | 1928 | (unwind-protect |
| 1961 | (progn | 1929 | (progn |
| 1962 | (walk-windows | 1930 | (walk-windows |
| 1963 | '(lambda (win) | 1931 | #'(lambda (win) |
| 1964 | (if (or (eq gud-comint-buffer (window-buffer win)) | 1932 | (if (or (eq gud-comint-buffer (window-buffer win)) |
| 1965 | (eq gdb-source-window win)) | 1933 | (eq gdb-source-window win)) |
| 1966 | (set-window-dedicated-p win t)))) | 1934 | (set-window-dedicated-p win t)))) |
| @@ -1973,7 +1941,7 @@ the source buffer." | |||
| 1973 | (setq answer window)) | 1941 | (setq answer window)) |
| 1974 | (setq must-split t))))) | 1942 | (setq must-split t))))) |
| 1975 | (walk-windows | 1943 | (walk-windows |
| 1976 | '(lambda (win) | 1944 | #'(lambda (win) |
| 1977 | (if (or (eq gud-comint-buffer (window-buffer win)) | 1945 | (if (or (eq gud-comint-buffer (window-buffer win)) |
| 1978 | (eq gdb-source-window win)) | 1946 | (eq gdb-source-window win)) |
| 1979 | (set-window-dedicated-p win nil))))) | 1947 | (set-window-dedicated-p win nil))))) |
| @@ -1987,10 +1955,19 @@ the source buffer." | |||
| 1987 | 1955 | ||
| 1988 | (defun gdb-display-source-buffer (buffer) | 1956 | (defun gdb-display-source-buffer (buffer) |
| 1989 | (if (eq gdb-selected-view 'source) | 1957 | (if (eq gdb-selected-view 'source) |
| 1990 | (set-window-buffer gdb-source-window buffer) | 1958 | (progn |
| 1991 | (set-window-buffer gdb-source-window | 1959 | (if (window-live-p gdb-source-window) |
| 1992 | (gdb-get-buffer 'gdb-assembler-buffer))) | 1960 | (set-window-buffer gdb-source-window buffer) |
| 1993 | gdb-source-window) | 1961 | (gdb-display-buffer buffer) |
| 1962 | (setq gdb-source-window (get-buffer-window buffer))) | ||
| 1963 | gdb-source-window) | ||
| 1964 | (if (window-live-p gdb-source-window) | ||
| 1965 | (set-window-buffer gdb-source-window | ||
| 1966 | (gdb-get-buffer 'gdb-assembler-buffer)) | ||
| 1967 | (let ((buf (gdb-get-buffer 'gdb-assembler-buffer))) | ||
| 1968 | (gdb-display-buffer buf) | ||
| 1969 | (setq gdb-source-window (get-buffer-window buf)))) | ||
| 1970 | nil)) | ||
| 1994 | 1971 | ||
| 1995 | 1972 | ||
| 1996 | ;;; Shared keymap initialization: | 1973 | ;;; Shared keymap initialization: |
| @@ -2197,8 +2174,7 @@ buffers." | |||
| 2197 | (if gud-last-last-frame | 2174 | (if gud-last-last-frame |
| 2198 | (gud-find-file (car gud-last-last-frame)) | 2175 | (gud-find-file (car gud-last-last-frame)) |
| 2199 | (gud-find-file gdb-main-file))) | 2176 | (gud-find-file gdb-main-file))) |
| 2200 | (switch-to-buffer (gdb-get-create-buffer 'gdb-assembler-buffer)) | 2177 | (switch-to-buffer (gdb-get-create-buffer 'gdb-assembler-buffer))) |
| 2201 | (gdb-invalidate-assembler)) | ||
| 2202 | (setq gdb-source-window (get-buffer-window (current-buffer))) | 2178 | (setq gdb-source-window (get-buffer-window (current-buffer))) |
| 2203 | (other-window 1))) | 2179 | (other-window 1))) |
| 2204 | 2180 | ||
| @@ -2208,14 +2184,13 @@ buffers." | |||
| 2208 | PUTSTRING is displayed by putting an overlay into the current buffer with a | 2184 | PUTSTRING is displayed by putting an overlay into the current buffer with a |
| 2209 | `before-string' STRING that has a `display' property whose value is | 2185 | `before-string' STRING that has a `display' property whose value is |
| 2210 | PUTSTRING." | 2186 | PUTSTRING." |
| 2211 | (setq string "x") | 2187 | (let ((gdb-string "x") |
| 2212 | (let ((buffer (current-buffer))) | 2188 | (buffer (current-buffer))) |
| 2213 | (setq string (copy-sequence string)) | ||
| 2214 | (let ((overlay (make-overlay pos pos buffer)) | 2189 | (let ((overlay (make-overlay pos pos buffer)) |
| 2215 | (prop (list (list 'margin 'left-margin) putstring))) | 2190 | (prop (list (list 'margin 'left-margin) putstring))) |
| 2216 | (put-text-property 0 (length string) 'display prop string) | 2191 | (put-text-property 0 (length gdb-string) 'display prop gdb-string) |
| 2217 | (overlay-put overlay 'put-break t) | 2192 | (overlay-put overlay 'put-break t) |
| 2218 | (overlay-put overlay 'before-string string)))) | 2193 | (overlay-put overlay 'before-string gdb-string)))) |
| 2219 | 2194 | ||
| 2220 | ;;from remove-images | 2195 | ;;from remove-images |
| 2221 | (defun gdb-remove-strings (start end &optional buffer) | 2196 | (defun gdb-remove-strings (start end &optional buffer) |
| @@ -2236,16 +2211,14 @@ BUFFER nil or omitted means use the current buffer." | |||
| 2236 | in the current buffer. PUTSTRING is displayed by putting an | 2211 | in the current buffer. PUTSTRING is displayed by putting an |
| 2237 | overlay into the current buffer with a `before-string' | 2212 | overlay into the current buffer with a `before-string' |
| 2238 | \"gdb-arrow\" that has a `display' property whose value is | 2213 | \"gdb-arrow\" that has a `display' property whose value is |
| 2239 | PUTSTRING. STRING is defaulted if you omit it. POS may be an | 2214 | PUTSTRING. POS may be an integer or marker." |
| 2240 | integer or marker." | 2215 | (let ((gdb-string "gdb-arrow") |
| 2241 | (setq string "gdb-arrow") | 2216 | (buffer (current-buffer))) |
| 2242 | (let ((buffer (current-buffer))) | ||
| 2243 | (setq string (copy-sequence string)) | ||
| 2244 | (let ((overlay (make-overlay pos pos buffer)) | 2217 | (let ((overlay (make-overlay pos pos buffer)) |
| 2245 | (prop (list (list 'margin 'left-margin) putstring))) | 2218 | (prop (list (list 'margin 'left-margin) putstring))) |
| 2246 | (put-text-property 0 (length string) 'display prop string) | 2219 | (put-text-property 0 (length gdb-string) 'display prop gdb-string) |
| 2247 | (overlay-put overlay 'put-arrow t) | 2220 | (overlay-put overlay 'put-arrow t) |
| 2248 | (overlay-put overlay 'before-string string)))) | 2221 | (overlay-put overlay 'before-string gdb-string)))) |
| 2249 | 2222 | ||
| 2250 | (defun gdb-remove-arrow (&optional buffer) | 2223 | (defun gdb-remove-arrow (&optional buffer) |
| 2251 | "Remove arrow in BUFFER. | 2224 | "Remove arrow in BUFFER. |
| @@ -2374,8 +2347,7 @@ BUFFER nil or omitted means use the current buffer." | |||
| 2374 | (setq fringes-outside-margins t) | 2347 | (setq fringes-outside-margins t) |
| 2375 | (setq buffer-read-only t) | 2348 | (setq buffer-read-only t) |
| 2376 | (use-local-map gdb-assembler-mode-map) | 2349 | (use-local-map gdb-assembler-mode-map) |
| 2377 | (gdb-invalidate-assembler) | 2350 | (gdb-invalidate-assembler)) |
| 2378 | (gdb-invalidate-breakpoints)) | ||
| 2379 | 2351 | ||
| 2380 | (defun gdb-assembler-buffer-name () | 2352 | (defun gdb-assembler-buffer-name () |
| 2381 | (with-current-buffer gud-comint-buffer | 2353 | (with-current-buffer gud-comint-buffer |
| @@ -2396,8 +2368,7 @@ BUFFER nil or omitted means use the current buffer." | |||
| 2396 | (defun gdb-invalidate-assembler (&optional ignored) | 2368 | (defun gdb-invalidate-assembler (&optional ignored) |
| 2397 | (if (gdb-get-buffer 'gdb-assembler-buffer) | 2369 | (if (gdb-get-buffer 'gdb-assembler-buffer) |
| 2398 | (progn | 2370 | (progn |
| 2399 | (if (string-equal gdb-current-frame gdb-previous-frame) | 2371 | (unless (string-equal gdb-current-frame gdb-previous-frame) |
| 2400 | (gdb-assembler-custom) | ||
| 2401 | (if (or (not (member 'gdb-invalidate-assembler | 2372 | (if (or (not (member 'gdb-invalidate-assembler |
| 2402 | (gdb-get-pending-triggers))) | 2373 | (gdb-get-pending-triggers))) |
| 2403 | (not (string-equal gdb-current-address | 2374 | (not (string-equal gdb-current-address |
| @@ -2450,6 +2421,7 @@ BUFFER nil or omitted means use the current buffer." | |||
| 2450 | (set-window-buffer | 2421 | (set-window-buffer |
| 2451 | gdb-source-window | 2422 | gdb-source-window |
| 2452 | (gdb-get-create-buffer 'gdb-assembler-buffer)) | 2423 | (gdb-get-create-buffer 'gdb-assembler-buffer)) |
| 2424 | ;;update with new frame for machine code if necessary | ||
| 2453 | (gdb-invalidate-assembler))))))) | 2425 | (gdb-invalidate-assembler))))))) |
| 2454 | 2426 | ||
| 2455 | (provide 'gdb-ui) | 2427 | (provide 'gdb-ui) |