Mercurial > emacs
comparison lisp/gdb-ui.el @ 51693:04628db4db1a
(gdb-display-number-end): Don't re-initialise local
variables to preserve array slices.
(gdb-array-slice): Rename gdb-mouse-array-slice.
(gdb-array-slice): Interactive function bound to "\r" for text
terminals.
(gdb-view-source): Rename gdb-view-source-function.
Set uninitialised variables (defvars) to nil.
author | Nick Roberts <nickrob@snap.net.nz> |
---|---|
date | Sun, 29 Jun 2003 13:52:50 +0000 |
parents | cef03ad7bf21 |
children | 10f90558dc89 |
comparison
equal
deleted
inserted
replaced
51692:f7d85dcfebeb | 51693:04628db4db1a |
---|---|
708 (defun gdb-display-begin (ignored) | 708 (defun gdb-display-begin (ignored) |
709 (gdb-set-output-sink 'emacs) | 709 (gdb-set-output-sink 'emacs) |
710 (gdb-clear-partial-output) | 710 (gdb-clear-partial-output) |
711 (setq gdb-display-in-progress t)) | 711 (setq gdb-display-in-progress t)) |
712 | 712 |
713 (defvar gdb-expression-buffer-name) | 713 (defvar gdb-expression-buffer-name nil) |
714 (defvar gdb-display-number) | 714 (defvar gdb-display-number nil) |
715 (defvar gdb-dive-display-number) | 715 (defvar gdb-dive-display-number nil) |
716 | 716 |
717 (defun gdb-display-number-end (ignored) | 717 (defun gdb-display-number-end (ignored) |
718 (set-buffer (gdb-get-buffer 'gdb-partial-output-buffer)) | 718 (set-buffer (gdb-get-buffer 'gdb-partial-output-buffer)) |
719 (setq gdb-display-number (buffer-string)) | 719 (setq gdb-display-number (buffer-string)) |
720 (setq gdb-expression-buffer-name | 720 (setq gdb-expression-buffer-name |
728 (switch-to-buffer | 728 (switch-to-buffer |
729 (set-buffer (get-buffer-create gdb-expression-buffer-name))) | 729 (set-buffer (get-buffer-create gdb-expression-buffer-name))) |
730 (gdb-expressions-mode) | 730 (gdb-expressions-mode) |
731 (setq gdb-dive-display-number number))) | 731 (setq gdb-dive-display-number number))) |
732 (set-buffer (get-buffer-create gdb-expression-buffer-name)) | 732 (set-buffer (get-buffer-create gdb-expression-buffer-name)) |
733 (gdb-expressions-mode) | 733 (if (display-graphic-p) |
734 (if (and (display-graphic-p) (not gdb-dive)) | |
735 (catch 'frame-exists | 734 (catch 'frame-exists |
736 (dolist (frame (frame-list)) | 735 (dolist (frame (frame-list)) |
737 (if (string-equal (frame-parameter frame 'name) | 736 (if (string-equal (frame-parameter frame 'name) |
738 gdb-expression-buffer-name) | 737 gdb-expression-buffer-name) |
739 (throw 'frame-exists nil))) | 738 (throw 'frame-exists nil))) |
739 (gdb-expressions-mode) | |
740 (make-frame `((height . ,gdb-window-height) | 740 (make-frame `((height . ,gdb-window-height) |
741 (width . ,gdb-window-width) | 741 (width . ,gdb-window-width) |
742 (tool-bar-lines . nil) | 742 (tool-bar-lines . nil) |
743 (menu-bar-lines . nil) | 743 (menu-bar-lines . nil) |
744 (minibuffer . nil)))) | 744 (minibuffer . nil)))) |
745 (gdb-expressions-mode) | |
745 (gdb-display-buffer (get-buffer gdb-expression-buffer-name))))) | 746 (gdb-display-buffer (get-buffer gdb-expression-buffer-name))))) |
746 (set-buffer (gdb-get-buffer 'gdb-partial-output-buffer)) | 747 (set-buffer (gdb-get-buffer 'gdb-partial-output-buffer)) |
747 (setq gdb-dive nil)) | 748 (setq gdb-dive nil)) |
748 | 749 |
749 (defvar gdb-nesting-level) | 750 (defvar gdb-nesting-level nil) |
750 (defvar gdb-expression) | 751 (defvar gdb-expression nil) |
751 (defvar gdb-point) | 752 (defvar gdb-point nil) |
752 (defvar gdb-annotation-arg) | 753 (defvar gdb-annotation-arg nil) |
753 | 754 |
754 (defun gdb-delete-line () | 755 (defun gdb-delete-line () |
755 "Delete the current line." | 756 "Delete the current line." |
756 (delete-region (line-beginning-position) (line-beginning-position 2))) | 757 (delete-region (line-beginning-position) (line-beginning-position 2))) |
757 | 758 |
952 'mouse-face 'highlight) | 953 'mouse-face 'highlight) |
953 (put-text-property (- (point) (- end start)) (- (point) 1) | 954 (put-text-property (- (point) (- end start)) (- (point) 1) |
954 'local-map gdb-dive-map))) | 955 'local-map gdb-dive-map))) |
955 (delete-region start end))) | 956 (delete-region start end))) |
956 | 957 |
957 (defvar gdb-values) | 958 (defvar gdb-values nil) |
958 | 959 |
959 (defun gdb-array-format () | 960 (defun gdb-array-format () |
960 (while (re-search-forward "##" nil t) | 961 (while (re-search-forward "##" nil t) |
961 ;; keep making recursive calls... | 962 ;; keep making recursive calls... |
962 (if (looking-at "array-section-begin") | 963 (if (looking-at "array-section-begin") |
978 ;;else get rid of ##array-section-end etc | 979 ;;else get rid of ##array-section-end etc |
979 (gdb-delete-line) | 980 (gdb-delete-line) |
980 (setq gdb-nesting-level (- gdb-nesting-level 1)) | 981 (setq gdb-nesting-level (- gdb-nesting-level 1)) |
981 (gdb-array-format))))) | 982 (gdb-array-format))))) |
982 | 983 |
983 (defvar gdb-array-start) | 984 (defvar gdb-array-start nil) |
984 (defvar gdb-array-stop) | 985 (defvar gdb-array-stop nil) |
985 | 986 |
986 (defvar gdb-array-slice-map | 987 (defvar gdb-array-slice-map |
987 (let ((map (make-sparse-keymap))) | 988 (let ((map (make-sparse-keymap))) |
988 (define-key map [mouse-2] 'gdb-array-slice) | 989 (define-key map "\r" 'gdb-array-slice) |
990 (define-key map [mouse-2] 'gdb-mouse-array-slice) | |
989 map)) | 991 map)) |
990 | 992 |
991 (defun gdb-array-slice (event) | 993 (defun gdb-mouse-array-slice (event) |
992 "Select an array slice to display." | 994 "Select an array slice to display." |
993 (interactive "e") | 995 (interactive "e") |
994 (mouse-set-point event) | 996 (mouse-set-point event) |
997 (gdb-array-slice)) | |
998 | |
999 (defun gdb-array-slice () | |
1000 (interactive) | |
995 (save-excursion | 1001 (save-excursion |
996 (let ((n -1) (stop 0) (start 0) (point (point))) | 1002 (let ((n -1) (stop 0) (start 0) (point (point))) |
997 (beginning-of-line) | 1003 (beginning-of-line) |
998 (while (search-forward "[" point t) | 1004 (while (search-forward "[" point t) |
999 (setq n (+ n 1))) | 1005 (setq n (+ n 1))) |
1001 (aset gdb-array-start n start) | 1007 (aset gdb-array-start n start) |
1002 (setq stop (string-to-int (read-string "Stop index: "))) | 1008 (setq stop (string-to-int (read-string "Stop index: "))) |
1003 (aset gdb-array-stop n stop))) | 1009 (aset gdb-array-stop n stop))) |
1004 (gdb-array-format1)) | 1010 (gdb-array-format1)) |
1005 | 1011 |
1006 (defvar gdb-display-string) | 1012 (defvar gdb-display-string nil) |
1007 (defvar gdb-array-size) | 1013 (defvar gdb-array-size nil) |
1008 | 1014 |
1009 (defun gdb-array-format1 () | 1015 (defun gdb-array-format1 () |
1010 (setq gdb-display-string "") | 1016 (setq gdb-display-string "") |
1011 (let ((buffer-read-only nil)) | 1017 (let ((buffer-read-only nil)) |
1012 (delete-region (point-min) (point-max)) | 1018 (delete-region (point-min) (point-max)) |
2000 (define-key gud-menu-map [gdb-many-windows] | 2006 (define-key gud-menu-map [gdb-many-windows] |
2001 (menu-bar-make-toggle gdb-many-windows gdb-many-windows | 2007 (menu-bar-make-toggle gdb-many-windows gdb-many-windows |
2002 "Display other windows" "Many Windows %s" | 2008 "Display other windows" "Many Windows %s" |
2003 "Display locals, stack and breakpoint information")) | 2009 "Display locals, stack and breakpoint information")) |
2004 | 2010 |
2005 (let ((menu (make-sparse-keymap "GDB-Frames"))) | 2011 (let ((menu (make-sparse-keymap "GDB-Frames"))) |
2006 (define-key gud-menu-map [frames] | 2012 (define-key gud-menu-map [frames] |
2007 `(menu-item "GDB-Frames" ,menu :visible (eq gud-minor-mode 'gdba))) | 2013 `(menu-item "GDB-Frames" ,menu :visible (eq gud-minor-mode 'gdba))) |
2008 (define-key menu [gdb] '("Gdb" . gdb-frame-gdb-buffer)) | 2014 (define-key menu [gdb] '("Gdb" . gdb-frame-gdb-buffer)) |
2009 (define-key menu [locals] '("Locals" . gdb-frame-locals-buffer)) | 2015 (define-key menu [locals] '("Locals" . gdb-frame-locals-buffer)) |
2010 (define-key menu [registers] '("Registers" . gdb-frame-registers-buffer)) | 2016 (define-key menu [registers] '("Registers" . gdb-frame-registers-buffer)) |
2034 ; :help "Display both source and assembler" | 2040 ; :help "Display both source and assembler" |
2035 ; :button (:radio . (eq gdb-selected-view 'both)))) | 2041 ; :button (:radio . (eq gdb-selected-view 'both)))) |
2036 (define-key menu [assembler] '(menu-item "Assembler" gdb-view-assembler | 2042 (define-key menu [assembler] '(menu-item "Assembler" gdb-view-assembler |
2037 :help "Display assembler only" | 2043 :help "Display assembler only" |
2038 :button (:radio . (eq gdb-selected-view 'assembler)))) | 2044 :button (:radio . (eq gdb-selected-view 'assembler)))) |
2039 (define-key menu [source] '(menu-item "Source" gdb-view-source | 2045 (define-key menu [source] '(menu-item "Source" gdb-view-source-function |
2040 :help "Display source only" | 2046 :help "Display source only" |
2041 :button (:radio . (eq gdb-selected-view 'source))))) | 2047 :button (:radio . (eq gdb-selected-view 'source))))) |
2042 | 2048 |
2043 (defun gdb-frame-gdb-buffer () | 2049 (defun gdb-frame-gdb-buffer () |
2044 (interactive) | 2050 (interactive) |
2050 (gdb-display-buffer | 2056 (gdb-display-buffer |
2051 (gdb-get-create-buffer 'gdba))) | 2057 (gdb-get-create-buffer 'gdba))) |
2052 | 2058 |
2053 (defvar gdb-main-file nil "Source file from which program execution begins.") | 2059 (defvar gdb-main-file nil "Source file from which program execution begins.") |
2054 | 2060 |
2055 (defun gdb-view-source() | 2061 (defun gdb-view-source-function () |
2056 (interactive) | 2062 (interactive) |
2057 (if gdb-view-source | 2063 (if gdb-view-source |
2058 (if gud-last-last-frame | 2064 (if gud-last-last-frame |
2059 (set-window-buffer gdb-source-window | 2065 (set-window-buffer gdb-source-window |
2060 (gud-find-file (car gud-last-last-frame))) | 2066 (gud-find-file (car gud-last-last-frame))) |