aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNick Roberts2003-08-24 20:40:03 +0000
committerNick Roberts2003-08-24 20:40:03 +0000
commit32d369ac52866ddcbbddbbd5d7f40082ad2af57e (patch)
tree36f9c1c6e91de0557629a5557e17254fc8b94641
parenta1c6b6e51c61eba227baf4b0912c9a1237425e6b (diff)
downloademacs-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.el104
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.
121The following interactive lisp functions help control operation : 121The 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."
2208PUTSTRING is displayed by putting an overlay into the current buffer with a 2184PUTSTRING 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
2210PUTSTRING." 2186PUTSTRING."
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."
2236in the current buffer. PUTSTRING is displayed by putting an 2211in the current buffer. PUTSTRING is displayed by putting an
2237overlay into the current buffer with a `before-string' 2212overlay 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
2239PUTSTRING. STRING is defaulted if you omit it. POS may be an 2214PUTSTRING. POS may be an integer or marker."
2240integer 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)