;ELC ;;; Compiled by cyd@localhost on Mon Apr 23 22:25:03 2007 ;;; from file /home/cyd/emacs/lisp/progmodes/gdb-ui.el ;;; in Emacs version 22.0.99 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. (if (and (boundp 'emacs-version) (< (aref emacs-version (1- (length emacs-version))) ?A) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19.29"))) (error "`gdb-ui.el' was compiled for Emacs 19.29 or later")) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (require 'gud) #@84 Initialization for Assembler buffer. Set to "main" at start if gdb-show-main is t. (defvar gdb-pc-address nil (#$ . 584)) #@41 Identity of frame for watch expression. (defvar gdb-frame-address nil (#$ . 712)) (byte-code "\301B\302\301!\204\303\301\304\"\210\305B\302\305!\204\303\305\306\"\210\307B\302\307!\204-\303\307\304\"\210\310B\302\310!\204<\303\310\304\"\210\311B\302\311!\204K\303\311\304\"\210\312B\302\312!\204Z\303\312\304\"\210\304\207" [current-load-list gdb-previous-frame-address default-boundp set-default nil gdb-memory-address "main" gdb-previous-frame gdb-selected-frame gdb-frame-number gdb-current-language] 3) #@217 List of variables in watch window. Each element has the form (VARNUM EXPRESSION NUMCHILD TYPE VALUE STATUS FP) where STATUS is nil (`unchanged'), `changed' or `out-of-scope', FP the frame address for root variables. (defvar gdb-var-list nil (#$ . 1246)) #@50 Source file from which program execution begins. (defvar gdb-main-file nil (#$ . 1506)) (byte-code "\301B\302\301!\204\303\301\304\"\210\305B\302\305!\204\303\305\304\"\210\306B\302\306!\204-\303\306\304\"\210\307B\302\307!\204<\303\307\304\"\210\310B\302\310!\204K\303\310\304\"\210\304\207" [current-load-list gud-old-arrow default-boundp set-default nil gdb-overlay-arrow-position gdb-stack-position gdb-server-prefix gdb-flush-pending-output] 3) #@93 Alist of breakpoint numbers and full filenames. Only used for files that Emacs can't find. (defvar gdb-location-alist nil (#$ . 1979)) #@79 GUD tooltips display variable values when t, and macro definitions otherwise. (defvar gdb-active-process nil (#$ . 2121)) (byte-code "\301B\302\301!\204\303\301\304\"\210\301\207" [current-load-list gdb-error default-boundp set-default "Non-nil when GDB is reporting an error."] 3) #@74 Non-nil if GDB knows that the inferior includes preprocessor macro info. (defvar gdb-macro-info nil (#$ . 2413)) (byte-code "\301B\302\301!\204\303\301\304\"\210\305B\302\305!\204\303\305\304\"\210\306B\302\306!\204-\303\306\304\"\210\307B\302\307!\204<\303\307\304\"\210\310B\302\310!\204K\303\310\304\"\210\311B\302\311!\204Z\303\311\304\"\210\304\207" [current-load-list gdb-buffer-fringe-width default-boundp set-default nil gdb-signalled gdb-source-window gdb-inferior-status gdb-continuation gdb-look-up-stack] 3) #@52 Non-nil when GDB generates frame-begin annotation. (defvar gdb-frame-begin nil (#$ . 2959)) (byte-code "\301B\302\301!\204\303\301\304\"\210\301\207" [current-load-list gdb-printing default-boundp set-default t] 3) #@49 One of the symbols bound in `gdb-buffer-rules'. (defvar gdb-buffer-type nil (#$ . 3184)) (make-variable-buffer-local 'gdb-buffer-type) #@32 A list of gdb command objects. (defvar gdb-input-queue nil (#$ . 3325)) #@46 True when gdb is idle with no pending input. (defvar gdb-prompting nil (#$ . 3403)) #@849 The disposition of the output of the current gdb command. Possible values are these symbols: `user' -- gdb output should be copied to the GUD buffer for the user to see. `inferior' -- gdb output should be copied to the inferior-io buffer. `pre-emacs' -- output should be ignored util the post-prompt annotation is received. Then the output-sink becomes:... `emacs' -- output should be collected in the partial-output-buffer for subsequent processing by a command. This is the disposition of output generated by commands that gdb mode sends to gdb on its own behalf. `post-emacs' -- ignore output until the prompt annotation is received, then go to USER disposition. gdba (gdb-ui.el) uses all five values, gdbmi (gdb-mi.el) only two (`user' and `emacs'). (defvar gdb-output-sink 'user (#$ . 3494)) #@43 The most recent command item sent to gdb. (defvar gdb-current-item nil (#$ . 4391)) #@77 A list of trigger functions that have run later than their output handlers. (defvar gdb-pending-triggers nil (#$ . 4481)) (byte-code "\301B\302\301!\204\303\301\304\"\210\305B\302\305!\204\303\305\304\"\210\306B\302\306!\204-\303\306\304\"\210\304\207" [current-load-list gdb-first-post-prompt default-boundp set-default nil gdb-version gdb-locals-font-lock-keywords] 3) #@49 List of source files for the current executable (defvar gdb-source-file-list nil (#$ . 4869)) (byte-code "\301B\302\303!\207" [current-load-list gdb-error-regexp (lambda (#1=#:defconst-tmp-var) (defconst gdb-error-regexp #1#)) "\\^error,msg=\"\\(.+\\)\""] 2) #@46 Font lock keywords used in `gdb-local-mode'. (defvar gdb-locals-font-lock-keywords-1 '(("\\(^\\(\\sw\\|[_.]\\)+\\) += +(\\(struct\\) \\(\\(\\sw\\|[_.]\\)+\\)" (1 font-lock-variable-name-face) (3 font-lock-keyword-face) (4 font-lock-type-face)) ("\\(^\\(\\sw\\|[_.]\\)+\\) += +(\\(\\(\\sw\\|[_.]\\)+\\)" (1 font-lock-variable-name-face) (3 font-lock-type-face)) ("\\(^\\(\\sw\\|[_.]\\)+\\) += +[^(]" (1 font-lock-variable-name-face))) (#$ . 5136)) #@46 Font lock keywords used in `gdb-local-mode'. (defvar gdb-locals-font-lock-keywords-2 '(("\\(^\\(\\sw\\|[_.]\\)+\\) +\\(\\(\\sw\\|[_.]\\)+\\)" (1 font-lock-variable-name-face) (3 font-lock-type-face))) (#$ . 5589)) #@25 List of register names. (defvar gdb-register-names nil (#$ . 5809)) #@45 List of changed register numbers (strings). (defvar gdb-changed-registers nil (#$ . 5883)) #@2595 Run gdb on program FILE in buffer *gud-FILE*. The directory containing FILE becomes the initial working directory and source-file directory for your debugger. If `gdb-many-windows' is nil (the default value) then gdb just pops up the GUD buffer unless `gdb-show-main' is t. In this case it starts with two windows: one displaying the GUD buffer and the other with the source file with the main routine of the inferior. If `gdb-many-windows' is t, regardless of the value of `gdb-show-main', the layout below will appear unless `gdb-use-separate-io-buffer' is nil when the source buffer occupies the full width of the frame. Keybindings are shown in some of the buffers. Watch expressions appear in the speedbar/slowbar. The following commands help control operation : `gdb-many-windows' - Toggle the number of windows gdb uses. `gdb-restore-windows' - To restore the window layout. See Info node `(emacs)GDB Graphical Interface' for a more detailed description of this mode. +----------------------------------------------------------------------+ | GDB Toolbar | +-----------------------------------+----------------------------------+ | GUD buffer (I/O of GDB) | Locals buffer | | | | | | | | | | +-----------------------------------+----------------------------------+ | Source buffer | I/O buffer (of debugged program) | | | (comint-mode) | | | | | | | | | | | | | | | | | | | +-----------------------------------+----------------------------------+ | Stack buffer | Breakpoints buffer | | RET gdb-frames-select | SPC gdb-toggle-breakpoint | | | RET gdb-goto-breakpoint | | | D gdb-delete-breakpoint | +-----------------------------------+----------------------------------+ (defalias 'gdba #[(command-line) "\301!\210\302 \207" [command-line gdb gdb-init-1] 2 (#$ . 5982) (list (gud-query-cmdline 'gdba))]) #@62 Maximum size of `gdb-debug-log'. If nil, size is unlimited. (custom-declare-variable 'gdb-debug-log-max '128 '(#$ . 8716) :group 'gud :type '(choice (integer :tag "Number of elements") (const :tag "Unlimited" nil)) :version "22.1") #@197 List of commands sent to and replies received from GDB. Most recent commands are listed first. This list stores only the last 'gdb-debug-log-max' values. This variable is used to debug GDB-UI. (defvar gdb-debug-log nil (#$ . 8956)) #@71 Non-nil means record the process input and output in `gdb-debug-log'. (custom-declare-variable 'gdb-enable-debug 'nil '(#$ . 9197) :type 'boolean :group 'gud :version "22.1") #@313 Shell command for generating a list of defined macros in a source file. This list is used to display the #define directive associated with an identifier as a tooltip. It works in a debug session with GDB, when gud-tooltip-mode is t. Set `gdb-cpp-define-alist-flags' for any include paths or predefined macros. (custom-declare-variable 'gdb-cpp-define-alist-program '"gcc -E -dM -" '(#$ . 9379) :type 'string :group 'gud :version "22.1") #@56 Preprocessor flags for `gdb-cpp-define-alist-program'. (custom-declare-variable 'gdb-cpp-define-alist-flags '"" '(#$ . 9824) :type 'string :group 'gud :version "22.1") #@143 Non-nil means display source file containing the main routine at startup. Also display the main routine in the disassembly buffer if present. (custom-declare-variable 'gdb-show-main 'nil '(#$ . 9999) :type 'boolean :group 'gud :version "22.1") #@266 If nil, just pop up the GUD buffer unless `gdb-show-main' is t. In this case start with two windows: one displaying the GUD buffer and the other with the source file with the main routine of the debugged program. Non-nil means display the layout shown for `gdba'. (custom-declare-variable 'gdb-many-windows 'nil '(#$ . 10250) :type 'boolean :group 'gud :version "22.1") #@78 Non-nil means display output from the debugged program in a separate buffer. (custom-declare-variable 'gdb-use-separate-io-buffer 'nil '(#$ . 10627) :type 'boolean :group 'gud :version "22.1") (defalias 'gdb-force-mode-line-update #[(status) "\211\205\304 !\205r q\210\305\306\307\310 !!\n#\311 ))\207" [gud-comint-buffer buffer status mode-line-process buffer-name format ":%s [%s]" process-status get-buffer-process force-mode-line-update] 6]) #@114 Toggle the number of windows in the basic arrangement. With arg, display additional buffers iff arg is positive. (defalias 'gdb-many-windows #[(arg) "\204 ?\202\303!\304V\305\306\307 \203\310\202\311\"!\210\n\205,\312\n!\205,\313\314\315\217\207" [arg gdb-many-windows gud-comint-buffer prefix-numeric-value 0 message format "Display of other windows %sabled" "en" "dis" buffer-name nil (gdb-restore-windows) ((error))] 4 (#$ . 11087) "P"]) #@89 Toggle separate IO for debugged program. With arg, use separate IO iff arg is positive. (defalias 'gdb-use-separate-io-buffer #[(arg) "\204 ?\202\303!\304V\305\306\307 \203\310\202\311\"!\210\n\205,\312\n!\205,\313\314\315\217\207" [arg gdb-use-separate-io-buffer gud-comint-buffer prefix-numeric-value 0 message format "Separate IO %sabled" "en" "dis" buffer-name nil (byte-code "\203 \205\302 \207\303\304 !\207" [gdb-use-separate-io-buffer gdb-many-windows gdb-restore-windows kill-buffer gdb-inferior-io-name] 2) ((error))] 4 (#$ . 11547) "P"]) #@47 Alist of #define directives for GUD tooltips. (defvar gdb-define-alist nil (#$ . 12120)) #@57 Create an alist of #define directives for GUD tooltips. (defalias 'gdb-create-define-alist #[nil "\306 \307\310\311!!\211r q\210\312\n\313!\205\314\315D\315\316 \317\fQ&\210*r q\210\320 \321\315!\210*\322 \323\314#\315\211\315\211\203i@\322\324\"A@\211BBA\211\204I.\315\207" [file standard-output shell-file-name gdb-cpp-define-alist-program gdb-cpp-define-alist-flags output buffer-file-name get-buffer-create generate-new-buffer-name " *string-output*" call-process file-exists-p t nil "-c" " " buffer-string kill-buffer split-string "\n" "[( ]" define-list name gdb-define-alist define #1=#:--cl-dolist-temp--] 10 (#$ . 12215)]) (defalias 'gdb-tooltip-print #[(expr) "\304r\305\306!q\210eb\210\307\310\311\312#\203`\313Zd{P\202\314 \211\315 GSO*\n\206+ \"\207" [expr string gud-tooltip-echo-area tooltip-use-echo-area tooltip-show gdb-get-buffer gdb-partial-output-buffer search-forward "=" nil t 2 buffer-string 0] 6]) (defalias 'gdb-tooltip-print-1 #[(expr) "r\302\303!q\210eb\210\304\305\306\307#\205&\310\311!?\205&\312\313 \314R\315\306\316 DED!)\207" [gdb-server-prefix expr gdb-get-buffer gdb-partial-output-buffer search-forward "expands to: " nil t looking-at "\\S-+.*(.*).*" gdb-enqueue-input "print " "\n" lambda gdb-tooltip-print] 6]) (byte-code "\301B\302\303!\207" [current-load-list gdb-source-file-regexp (lambda (#1=#:defconst-tmp-var) (defconst gdb-source-file-regexp #1#)) "\\(.+?\\), \\|\\([^, \n].*$\\)"] 2) #@54 Create list of source files for current GDB session. (defalias 'gdb-set-gud-minor-mode-existing-buffers #[nil "eb\210\306\307\310\311#\203j\312\310\311#\203$\313\314\315!\206\314\316!! B\202 \317 \310\211\203i @r\nq\210\f\203a\313\f! \235\203a\320\305!\210\321\320\322!\210\203a\320\323!\210\324 \210\325\326\324\310\311$\210) A\211\204-*\327\330\331\332#!\207" [gdb-source-file-regexp gdb-source-file-list buffer #1=#:--cl-dolist-temp-- buffer-file-name gud-minor-mode search-forward "read in on demand:" nil t re-search-forward file-name-nondirectory match-string 1 2 buffer-list make-local-variable gdba tool-bar-map gdb-define-alist gdb-create-define-alist add-hook after-save-hook gdb-force-mode-line-update propertize "ready" face gud-tool-bar-map gud-tooltip-mode font-lock-variable-name-face] 6 (#$ . 13707)]) (defalias 'gdb-find-watch-expression #[nil "\306`!\307Z8\211@\310\211\311\312\n\"\210\313\314\315\n\"\"\310\211\316\314\307\n\"\317\320#\211A@@ \310\211\203u@\313\" \311\321\3228\"\203^\323\324Q\202b\325PP\325QA\211\204?* .\207" [gdb-var-list var varnum expr array component-list line-number-at-pos 2 nil string-match "\\(var[0-9]+\\)\\.\\(.*\\)" assoc match-string 1 split-string "\\." t ".*\\[[0-9]+\\]$" 3 "[" "]" "." varnumlet var2 var1 component #1=#:--cl-dolist-temp--] 8]) (defalias 'gdb-init-1 #[nil "\306\300!\210\307\306\301!\210\310\311\312\313\"\210\314\315\312\"\210\316\317\n\320\"\312\"\210\311\321\322\"\210\314\323\321\"\210\316\317\n\324\"\321\"\210\311\325\326\"\210\314\327\325\"\210\316\317\n\330\"\325\"\210\311\331\332\"\210\311\333\334\"\210\335 \336\337#\210\335 \340\337#\210\335 \341\342#\210\335 \343\344#\210\335 \345\346#\210\335 \347\346#\210\335 \350\346#\210\335 \351\346#\210\335 \352\353#\210\335 \354\353#\210\335 \355\353#\210\335 \356\353#\210\357 \205\233\360:\361;\360<\361\211=>\361\211?@\361\211AB\362C\361\211DE\361\211FG\363H\364I\361\211JK\361\211LM\361N\365 @O\361\211PQ\361\211RS\361\211TU\361V\362W\361X\307YZ\203\366 \210\367\370\371D!\207" [gud-minor-mode gud-marker-filter gud-key-prefix gud-minor-mode-map comint-input-sender gdb-show-main make-local-variable gdba gud-gdba-marker-filter defalias gud-break #[#1=(arg) "\302\303\"\204\f\304\305 \"\207\212\306 \210\307u\210\304\310 \")\207" [mode-name arg string-match "Machine" gud-call "break %f:%l" beginning-of-line 2 "break *%a"] 3 "Set breakpoint at current line or address." #2="p"] local-set-key "" global-set-key vconcat "" gud-remove #[#1# "\302\303\"\204\f\304\305 \"\207\212\306 \210\307u\210\304\310 \")\207" [mode-name arg string-match "Machine" gud-call "clear %f:%l" beginning-of-line 2 "clear *%a"] 3 "Remove breakpoint at current line or address." #2#] "" "" gud-until #[#1# "\302\303\"\204\f\304\305 \"\207\212\306 \210\307u\210\304\310 \")\207" [mode-name arg string-match "Machine" gud-call "until %f:%l" beginning-of-line 2 "until *%a"] 3 "Continue to current line or address." #2#] "" "" gud-go #[#1# "\302\203 \303\202\n\304 \"\207" [gdb-active-process arg gud-call "continue" "run"] 3 "Start or continue execution." #2#] gud-pp #[#1# "\301\302\303\304\305 \"\306=\203\307 \202\310P\"\207" [arg gud-call "pp1 " buffer-local-value major-mode window-buffer speedbar-mode gdb-find-watch-expression "%e"] 5 "Print the emacs s-expression." #2#] define-key [left-margin mouse-1] gdb-mouse-set-clear-breakpoint [left-fringe mouse-1] [left-margin C-mouse-1] gdb-mouse-toggle-breakpoint-margin [left-fringe C-mouse-1] gdb-mouse-toggle-breakpoint-fringe [left-margin drag-mouse-1] gdb-mouse-until [left-fringe drag-mouse-1] [left-margin mouse-3] [left-fringe mouse-3] [left-margin C-drag-mouse-1] gdb-mouse-jump [left-fringe C-drag-mouse-1] [left-fringe C-mouse-3] [left-margin C-mouse-3] gdb-send "main" nil t user "server " window-fringes gdb-clear-inferior-io gdb-enqueue-input "server interpreter mi -stack-info-frame\n" gdb-get-version gdb-pc-address gdb-previous-frame-address gdb-memory-address gdb-previous-frame gdb-selected-frame gdb-current-language gdb-frame-number gdb-var-list gdb-main-file gdb-first-post-prompt gdb-prompting gdb-input-queue gdb-current-item gdb-pending-triggers gdb-output-sink gdb-server-prefix gdb-flush-pending-output gdb-location-alist gdb-source-file-list gdb-error gdb-macro-info gdb-buffer-fringe-width gdb-debug-log gdb-signalled gdb-source-window gdb-inferior-status gdb-continuation gdb-look-up-stack gdb-frame-begin gdb-printing gud-old-arrow gdb-buffer-type gdb-use-separate-io-buffer] 5]) (defalias 'gdb-init-2 #[nil "\306=\203\f\307\310\311D!\210\307\312\311D!\210\307\313\311D!\210 \314\230\203+\307\n\315P\316D!\210 \2029\307\317\320D!\210\307\321\322D!\210 \307\323\311D!\210\307\324\325D!\210\326\327!\207" [window-system gdb-version gdb-server-prefix gdb-locals-font-lock-keywords-1 gdb-locals-font-lock-keywords gdb-locals-font-lock-keywords-2 w32 gdb-enqueue-input "set new-console off\n" ignore "set height 0\n" "set width 0\n" "pre-6.4" "info sources\n" gdb-set-gud-minor-mode-existing-buffers "server interpreter mi -data-list-register-names\n" gdb-get-register-names "server interpreter mi \"-file-list-exec-source-files\"\n" gdb-set-gud-minor-mode-existing-buffers-1 "server list\n" "server info source\n" gdb-source-info run-hooks gdba-mode-hook] 3]) (defalias 'gdb-get-version #[nil "eb\210\301\302\303\304#\203\305\202\306\307 \207" [gdb-version re-search-forward "Undefined\\( mi\\)* command:" nil t "pre-6.4" "6.4+" gdb-init-2] 4]) (defalias 'gdb-if-arrow '(macro . #[(arrow-position &rest body) "\302\303\304\305DD\306B\302\307\310\304\311\312\313\314\315\316DEE BBEEEE\207" [arrow-position body if let buffer marker-buffer ((line)) (equal buffer (window-buffer (posn-window end))) with-current-buffer when or (equal start end) equal (posn-point start) marker-position] 15])) #@213 Continue running until a source line past the current line. The destination source line can be selected either by clicking with mouse-3 on the fringe/margin or dragging the arrow with mouse-1 (default bindings). (defalias 'gdb-mouse-until #[(event) "\211:\203 \3068\202\307 `\310\311F)\211:\203,\3128:\203&\312\202'\3068\2022\307 `\313\311F) \203\252\314 !\315\211\316 \3118)!\232\203\251r q\210\n \232\204~\n\3178\206v\3068:\203r\3068@\202v\3068)\320 !\232\203\250\321 \3178\206\235\3068:\203\231\3068@\202\235\3068)!\322\323\324\f!P!\210)*\205$\314!\315\211\316 \3118)!\232\205#r q\210\n \232\204\366\n\3178\206\355\3068:\203\351\3068@\202\355\3068)\320!\232\205\"\212\325\321 \3178\206\3068:\203\3068@\202\3068)!!\210\312u\210\322\326!))**\207" [event end start gud-overlay-arrow-position line buffer 1 selected-window (0 . 0) 0 2 (0 . 0) marker-buffer nil window-buffer 5 marker-position line-number-at-pos gud-call "until " number-to-string goto-line "until *%a" position gdb-overlay-arrow-position] 6 (#$ . 19643) "e"]) #@294 Set execution address/line. The destination source line can be selected either by clicking with C-mouse-3 on the fringe/margin or dragging the arrow with C-mouse-1 (default bindings). Unlike gdb-mouse-until the destination address can be before the current line, and no execution takes place. (defalias 'gdb-mouse-jump #[(event) "\211:\203 \3068\202\307 `\310\311F)\211:\203,\3128:\203&\312\202'\3068\2022\307 `\313\311F) \203\262\314 !\315\211\316 \3118)!\232\203\261r q\210\n \232\204~\n\3178\206v\3068:\203r\3068@\202v\3068)\320 !\232\203\260\321 \3178\206\235\3068:\203\231\3068@\202\235\3068)!\322\323\324\f!P!\210\322\325\324\f!P!\210)*\2050\314!\315\211\316 \3118)!\232\205/r q\210\n \232\204\376\n\3178\206\365\3068:\203\361\3068@\202\365\3068)\320!\232\205.\212\326\321 \3178\206\3068:\203\3068@\202\3068)!!\210\312u\210\322\327!\210\322\330!))**\207" [event end start gud-overlay-arrow-position line buffer 1 selected-window (0 . 0) 0 2 (0 . 0) marker-buffer nil window-buffer 5 marker-position line-number-at-pos gud-call "tbreak " number-to-string "jump " goto-line "tbreak *%a" "jump *%a" position gdb-overlay-arrow-position] 6 (#$ . 20774) "e"]) #@79 If non-nil raise speedbar every time display of watch expressions is updated. (custom-declare-variable 'gdb-speedbar-auto-raise 'nil '(#$ . 22038) :type 'boolean :group 'gud :version "22.1") #@125 Toggle automatic raising of the speedbar for watch expressions. With arg, automatically raise speedbar iff arg is positive. (defalias 'gdb-speedbar-auto-raise #[(arg) "\204 ?\202\302!\303V\304\305\306 \203\307\202\310\"!\207" [arg gdb-speedbar-auto-raise prefix-numeric-value 0 message format "Auto raising %sabled" "en" "dis"] 4 (#$ . 22236) "P"]) #@70 If non-nil use FUN::VAR format to display variables in the speedbar. (custom-declare-variable 'gdb-use-colon-colon-notation 'nil '(#$ . 22602) :type 'boolean :group 'gud :version "22.1") (byte-code "\303\304\305#\210\303 \n\306P\305#\207" [gud-minor-mode-map global-map gud-key-prefix define-key "" gud-watch ""] 4) #@94 Watch expression at point. With arg, enter name of variable to be watched in the minibuffer. (defalias 'gud-watch #[(&optional arg event) "\306\307\"\211\310>\203\222\n\2031\311\n\211:\203(\312\n8:\203\"\312\202#\313\n8\202.\314 `\315\316F)!\210\317\320!\210\314 \321\322\323 \"r\324\216 \203L\325\326\327\"\202a(\203^)\203^\330 \331 {\202a\332`!*\333\313!\210\334\316*G\335*$\210\336 \337=\203\200\340*\341Q\202\205\342*\343Q\344\335\345*DED!-\202\225\346\347!)\207" [gud-comint-buffer minor-mode event save-selected-window-alist save-selected-window-window arg buffer-local-value gud-minor-mode (gdbmi gdba) posn-set-point 2 1 selected-window (0 . 0) 0 require tooltip mapcar #[(frame) "\301!D\207" [frame frame-selected-window] 3] frame-list ((byte-code "\305\211\203/\n@\306 @!\203(\307 \211A@)!\203(\310 @ \211A@)\"\210\nA\211\204*\307\f!\203:\311\f!\210\305\207" [save-selected-window-alist elt #1=#:--cl-dolist-temp-- x save-selected-window-window nil frame-live-p window-live-p set-frame-selected-window select-window] 4)) completing-read "Name of variable: " gud-gdb-complete-command region-beginning region-end tooltip-identifier-from-point speedbar set-text-properties nil gdb-enqueue-input gdba "server interpreter mi \"-var-create - * " "\"\n" "-var-create - * " "\n" lambda gdb-var-create-handler message "gud-watch is a no-op in this mode." transient-mark-mode mark-active expr] 7 (#$ . 22928) (list current-prefix-arg last-input-event)]) (byte-code "\301B\302\303!\207" [current-load-list gdb-var-create-regexp (lambda (#1=#:defconst-tmp-var) (defconst gdb-var-create-regexp #1#)) "name=\"\\(.*?\\)\",.*numchild=\"\\(.*?\\)\",\\(?:.*value=\\(\".*\"\\),\\)?.*type=\"\\(.*?\\)\""] 2) (defalias 'gdb-var-create-handler #[(expr) "eb\210\306\307\310#\203~\311\312! \313\230\203%\n\203% \203% \314\fQ\211\202&\f\311\315!\311\316!\311\317!\2057\320\311\317!!\307 \257\211#$B$%\321\230\204N\322\321!\210\316#8?\205|\323\324\325&\"\326=\203j\327#@\330Q\202p\331#@\332Q\333\307\334#@\335BBED!)\207\336\337\307\310#\203\212\340\341!\207\340\342\f\"\207" [gdb-var-create-regexp gdb-current-language gdb-use-colon-colon-notation gdb-selected-frame expr gdb-frame-address re-search-forward nil t match-string 1 "c" "::" 2 4 3 read "GUD" speedbar-change-initial-expansion-list gdb-enqueue-input buffer-local-value gud-minor-mode gdba "server interpreter mi \"0-var-evaluate-expression " "\"\n" "0-var-evaluate-expression " "\n" lambda gdb-var-evaluate-expression-handler (nil) search-forward "Undefined command" message-box "Watching expressions requires GDB 6.0 onwards" "No symbol \"%s\" in current context." var gdb-var-list speedbar-initial-expansion-list-name gud-comint-buffer] 8]) (defalias 'gdb-speedbar-update #[nil "\302\300!\205\303!\205\304 \235?\205\305\306\307D!\210\304 B\211\207" [speedbar-frame gdb-pending-triggers boundp frame-live-p gdb-speedbar-timer gdb-enqueue-input "server pwd\n" gdb-speedbar-timer-fn] 3]) (defalias 'gdb-speedbar-timer-fn #[nil "\301\302\"\303 \207" [gdb-pending-triggers delq gdb-speedbar-timer speedbar-timer-fn] 3]) (defalias 'gdb-var-evaluate-expression-handler #[(varnum changed) "eb\210\305\306\307\310#\210\311\312\313\314!!\"\315 \n\"\211\203/\f\203%\316 \233\304\240\210\317 \233\320\313\321!!\240\210)\322 \207" [gdb-pending-triggers varnum gdb-var-list var changed re-search-forward "\\(.+\\)\\^done,value=\\(\".*\"\\)" nil t delq string-to-number match-string 1 assoc 5 4 read 2 gdb-speedbar-update] 5]) (defalias 'gdb-var-list-children #[(varnum) "\301\302\303Q\304\305\306DED!\207" [varnum gdb-enqueue-input "server interpreter mi \"-var-list-children " "\"\n" lambda nil gdb-var-list-children-handler] 6]) (byte-code "\301B\302\303!\207" [current-load-list gdb-var-list-children-regexp (lambda (#1=#:defconst-tmp-var) (defconst gdb-var-list-children-regexp #1#)) "child={.*?name=\"\\(.*?\\)\",.*?exp=\"\\(.*?\\)\",.*?numchild=\"\\(.*?\\)\"\\(}\\|,.*?\\(type=\"\\(.*?\\)\"\\)?.*?}\\)"] 2) (defalias 'gdb-var-list-children-handler #[(varnum) "eb\210\301\302\303\215)\207" [var-list nil child-already-watched (byte-code "\306\211\203f\n@ @\230\203[ \fB\307 \306\310#\203_\311\312!\311\313!\311\314!\311\315!\306\211\257\316@\"\203>\317\320\306\"\210\fB\321\322@\323Q\324\306\325@\326BBED!\210)\202 \fB\nA\211\204*\f\237\211\207" [gdb-var-list var #1=#:--cl-dolist-temp-- varnum var-list gdb-var-list-children-regexp nil re-search-forward t match-string 1 2 3 6 assoc throw child-already-watched gdb-enqueue-input "server interpreter mi \"0-var-evaluate-expression " "\"\n" lambda gdb-var-evaluate-expression-handler (nil) varchild] 8)] 2]) (defalias 'gdb-var-update #[nil "\301\235?\205\302\303\304D!\210\301B\211\207" [gdb-pending-triggers gdb-var-update gdb-enqueue-input "server interpreter mi \"-var-update *\"\n" gdb-var-update-handler] 3]) (byte-code "\301B\302\303!\207" [current-load-list gdb-var-update-regexp (lambda (#1=#:defconst-tmp-var) (defconst gdb-var-update-regexp #1#)) "{.*?name=\"\\(.*?\\)\",.*?in_scope=\"\\(.*?\\)\",.*?type_changed=\".*?\".*?}"] 2) (defalias 'gdb-var-update-handler #[nil "\306\211\203\n@\307 \233\306\240\210\nA\211\204*eb\210\310\311\f\306\312#\203g\313\314!\313\315!\316\230\203E\317 \"\211\203A\307 \233\320\240\210)\202c T\211B\321\322\323 !\324 \325\260\326\306\327 \330BBED!\210)\202)\331\332\"\211\207" [gdb-var-list var #1=#:--cl-dolist-temp-- n gdb-var-update-regexp varnum nil 5 0 re-search-forward t match-string 1 2 "false" assoc out-of-scope gdb-enqueue-input "server interpreter mi \"" number-to-string "-var-evaluate-expression " "\"\n" lambda gdb-var-evaluate-expression-handler (t) delq gdb-var-update gdb-pending-triggers] 8]) (defalias 'gdb-var-delete-1 #[(varnum) "\306\307\310\"\311=\203\312 \313Q\202\314 \315Q\316D!\210\317\n \"\211\320\211\203@ @\321\n@\322P\f@\"\2039\317\f \" A\211\204&*\320\207" [gud-comint-buffer varnum var gdb-var-list varchild #1=#:--cl-dolist-temp-- gdb-enqueue-input buffer-local-value gud-minor-mode gdba "server interpreter mi \"-var-delete " "\"\n" "-var-delete " "\n" ignore delq nil string-match "\\."] 5]) #@53 Delete watch expression at point from the speedbar. (defalias 'gdb-var-delete #[nil "\304\305\"\306>\205'\307e`\"\310Z 8\211@\311\312\n@\"\203#\313\314!\202&\315 !*\207" [gud-comint-buffer gdb-var-list var varnum buffer-local-value gud-minor-mode (gdbmi gdba) count-lines 2 string-match "\\." message-box "Can only delete a root expression" gdb-var-delete-1] 4 (#$ . 29160) nil]) #@64 Delete children of variable object at point from the speedbar. (defalias 'gdb-var-delete-children #[(varnum) "\302\303\304\"\305=\203\306 \307Q\202\310 \311Q\312D!\207" [gud-comint-buffer varnum gdb-enqueue-input buffer-local-value gud-minor-mode gdba "server interpreter mi \"-var-delete -c " "\"\n" "-var-delete -c " "\n" ignore] 4 (#$ . 29552)]) #@57 Assign a value to a variable displayed in the speedbar. (defalias 'gdb-edit-value #[(text token indent) "\305e`\"\306Z8\211@\307\310\311!\312\313\314\f\"\315=\203&\316\n\317 \320\260\202-\321\n\317 \322\260\323\307\324 DED!+\207" [gdb-var-list var varnum value gud-comint-buffer count-lines 2 nil read-string "New value: " gdb-enqueue-input buffer-local-value gud-minor-mode gdba "server interpreter mi \"-var-assign " " " "\"\n" "-var-assign " "\n" lambda gdb-edit-value-handler] 7 (#$ . 29912)]) (defalias 'gdb-edit-value-handler #[(value) "eb\210\302\303\304#\205\305\306 \"\207" [gdb-error-regexp value re-search-forward nil t message-box "Invalid number or expression (%s)"] 4]) #@203 If non-nil change the face of out of scope variables and changed values. Out of scope variables are suppressed with `shadow' face. Changed values are highlighted with the face `font-lock-warning-face'. (custom-declare-variable 'gdb-show-changed-values 't '(#$ . 30615) :type 'boolean :group 'gud :version "22.1") #@68 Maximum number of children before expansion requires confirmation. (custom-declare-variable 'gdb-max-children '40 '(#$ . 30934) :type 'integer :group 'gud :version "22.1") #@176 Expand the node the user clicked on. TEXT is the text of the button we clicked on, a + or - item. TOKEN is data related to this node. INDENT is the current indentation depth. (defalias 'gdb-speedbar-expand-node #[(text token indent) "\203\227\306!\203\227\307\310 \"\203S\311\n \"\211A@\312\f8\"\313\"!#X\2044\314\315\316 \"#!\203O\317\320\"\321=\203K$\322\230\203K\323\n!\210\202O\324\n!\210+\202\224\307\325 \"\203\220 \326\211%\203%@\307\n\327P\f@\"\203v\330\f \"%A\211%\204c*\331\n!\210\332\333!\210\334&!\210\202\224\335\336!\210\337 \207\340\341!\207" [gud-comint-buffer text token gdb-var-list var expr buffer-name string-match "+" assoc 2 string-to-number y-or-n-p format "%s has %s children. Continue? " buffer-local-value gud-minor-mode gdba "pre-6.4" gdb-var-list-children gdb-var-list-children-1 "-" nil "\\." delq gdb-var-delete-children speedbar-change-expand-button-char 43 speedbar-delete-subblock error "Ooops... not sure what to do" speedbar-center-buffer-smartly message-box "GUD session has been killed" children gdb-max-children gdb-version #1=#:--cl-dolist-temp-- indent] 6 (#$ . 31113)]) (defalias 'gdb-get-target-string #[nil "rq\210 )\207" [gud-comint-buffer gud-target-name] 1]) (byte-code "\301B\302\301!\204\303\301\304\"\210\304\207" [current-load-list gdb-buffer-rules-assoc default-boundp set-default nil] 3) #@108 Return the gdb buffer tagged with type KEY. The key should be one of the cars in `gdb-buffer-rules-assoc'. (defalias 'gdb-get-buffer #[(key) "\212\301\302 \")\207" [key gdb-look-for-tagged-buffer buffer-list] 3 (#$ . 32499)]) #@119 Create a new gdb buffer of the type specified by KEY. The key should be one of the cars in `gdb-buffer-rules-assoc'. (defalias 'gdb-get-buffer-create #[(key) "\306!\206F\307 \"\310\n! \311 !r\fq\210\312\nAA\203&\nAA@ \313\314!\210\315\314\"\f\313\316!\210 \203C \210)\f,\207" [key gdb-buffer-rules-assoc rules name new trigger gdb-get-buffer assoc gdb-rules-name-maker get-buffer-create nil make-local-variable gud-minor-mode buffer-local-value tool-bar-map gdb-buffer-type gud-comint-buffer gud-tool-bar-map] 3 (#$ . 32733)]) (defalias 'gdb-rules-name-maker #[(rules) "A@\207" [rules] 1]) (defalias 'gdb-look-for-tagged-buffer #[(key bufs) "\304\204 \203 @q\210\n =\203 @ A\202)\207" [retval bufs gdb-buffer-type key nil] 2]) (defalias 'gdb-set-buffer-rules #[(buffer-type &rest rules) "\304 \"\211\203\n \241\202 B B\211)\207" [buffer-type gdb-buffer-rules-assoc binding rules assoc] 4]) (byte-code "\300\301\302\"\210\300\303\304\"\207" [gdb-set-buffer-rules gdba error gdb-partial-output-buffer gdb-partial-output-name] 3) (defalias 'gdb-partial-output-name #[nil "\300\301 \302Q\207" [" *partial-output-" gdb-get-target-string "*"] 3]) (gdb-set-buffer-rules 'gdb-inferior-io 'gdb-inferior-io-name 'gdb-inferior-io-mode) (defalias 'gdb-inferior-io-name #[nil "\300\301 \302Q\207" ["*input/output of " gdb-get-target-string "*"] 3]) #@54 Display IO of debugged program in a separate window. (defalias 'gdb-display-separate-io-buffer #[nil "\205\n\301\302\303!\304\"\207" [gdb-use-separate-io-buffer gdb-display-buffer gdb-get-buffer-create gdb-inferior-io t] 3 (#$ . 34119) nil]) (byte-code "\301B\302\303!\207" [current-load-list gdb-frame-parameters (lambda (#1=#:defconst-tmp-var) (defconst gdb-frame-parameters #1#)) ((height . 14) (width . 80) (unsplittable . t) (tool-bar-lines) (menu-bar-lines) (minibuffer))] 2) #@48 Display IO of debugged program in a new frame. (defalias 'gdb-frame-separate-io-buffer #[nil "\205\304 \305\"\n\306\307\310!!*\207" [gdb-use-separate-io-buffer special-display-regexps gdb-frame-parameters special-display-frame-alist append (".*") display-buffer gdb-get-buffer-create gdb-inferior-io] 3 (#$ . 34611) nil]) (byte-code "\302B\303\302!\2041\304\302\305 \306 \307\310#\210\306 \311\312#\210\306 \313\314#\210\306 \315\316#\210\306 \317\316#\210 )\"\210\320\321N\204=\322\320\321\323#\210\324\302!\204I\322\302\325\326#\210\302B\303\302!\204Y\304\302\305 \"\210\322\326\327\330#\207" [current-load-list map gdb-inferior-io-mode-map default-boundp set-default make-sparse-keymap define-key "" gdb-separate-io-interrupt "" gdb-separate-io-stop "" gdb-separate-io-quit "" gdb-separate-io-eof "" gdb-inferior-io-mode-hook variable-documentation put "Hook run when entering Inferior I/O mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp definition-name gdb-inferior-io-mode derived-mode-parent comint-mode] 6) #@228 Major mode for gdb inferior-io. In addition to any hooks its parent mode `comint-mode' might have run, this mode runs the hook `gdb-inferior-io-mode-hook', as the final step during initialization. \{gdb-inferior-io-mode-map} (defalias 'gdb-inferior-io-mode #[nil "\305\300!\210\306\307 \210\310\311\307\312N\203\313\310\312\307\312N#\210\314 !\204'\315 \316 \"\210\317 !\210\320\321 \322\321 GSOp\323#\210\324)\325\326!\203E\326\327!\207\330\327!\207" [delay-mode-hooks major-mode mode-name gdb-inferior-io-mode-map comint-input-sender make-local-variable t comint-mode gdb-inferior-io-mode "Inferior I/O" mode-class put keymap-parent set-keymap-parent current-local-map use-local-map make-comint-in-buffer buffer-name 1 "hexl" gdb-inferior-io-sender fboundp run-mode-hooks gdb-inferior-io-mode-hook run-hooks] 5 (#$ . 35748) nil]) (defalias 'gdb-inferior-io-sender #[(proc string) "r\303!q\210\304 !\305\n\"\210\305\306\")\207" [proc gud-comint-buffer string process-buffer get-buffer-process process-send-string "\n"] 3]) #@39 Interrupt the program being debugged. (defalias 'gdb-separate-io-interrupt #[nil "\302\303! \"\207" [gud-comint-buffer comint-ptyp interrupt-process get-buffer-process] 3 (#$ . 36792) nil]) #@49 Send quit signal to the program being debugged. (defalias 'gdb-separate-io-quit #[nil "\302\303! \"\207" [gud-comint-buffer comint-ptyp quit-process get-buffer-process] 3 (#$ . 36989) nil]) #@34 Stop the program being debugged. (defalias 'gdb-separate-io-stop #[nil "\302\303! \"\207" [gud-comint-buffer comint-ptyp stop-process get-buffer-process] 3 (#$ . 37186) nil]) #@49 Send end-of-file to the program being debugged. (defalias 'gdb-separate-io-eof #[nil "\301\302!!\207" [gud-comint-buffer process-send-eof get-buffer-process] 3 (#$ . 37368) nil]) #@84 A comint send filter for gdb. This filter may simply queue input for a later time. (defalias 'gdb-send #[(proc string) "rq\210\306\307ed\310#\210*\n\203( \311P \203!\312\fBB\313\f\")\207\314\315 \"\203=\204= \311Q\211\207 \311Q\316\f!\210\317\211)\207" [gud-comint-buffer inhibit-read-only gud-running string item gdb-enable-debug t remove-text-properties (face) "\n" send process-send-string string-match "\\\\$" gdb-enqueue-input nil gdb-debug-log proc comint-input-sender-no-newline gdb-continuation] 4 (#$ . 37554)]) (defalias 'gdb-enqueue-input #[(item) "?\205 \203\304\n!\210\305\211\207\n B\211\207" [gud-running gdb-prompting item gdb-input-queue gdb-send-item nil] 2]) (defalias 'gdb-dequeue-input #[nil "\211\205\302 !@\303 !\204\304\n))\207" [gdb-input-queue queue last nbutlast nil] 3]) (defalias 'gdb-send-item #[(item) "\306 \203\f\307\nB B\n\310 !\311\312 \"\313=\203;\n;\203,\314\315\n\"\202G\316 \210\317\315\n@\"\202G\316 \210\320\315\n@\")\207" [gdb-flush-pending-output gdb-enable-debug item gdb-debug-log gdb-current-item gud-comint-buffer nil send-item get-buffer-process buffer-local-value gud-minor-mode gdba user process-send-string gdb-clear-partial-output pre-emacs emacs process gdb-output-sink] 3]) #@69 Default command to execute an executable under the GDB-UI debugger. (custom-declare-variable 'gud-gdba-command-name '"gdb -annotate=3" '(#$ . 38849) :type 'string :group 'gud :version "22.1") #@67 An assoc mapping annotation tags to functions which process them. (defvar gdb-annotation-rules '(("pre-prompt" gdb-pre-prompt) ("prompt" gdb-prompt) ("commands" gdb-subprompt) ("overload-choice" gdb-subprompt) ("query" gdb-subprompt) ("nquery" gdb-subprompt) ("prompt-for-continue" gdb-subprompt) ("post-prompt" gdb-post-prompt) ("source" gdb-source) ("starting" gdb-starting) ("exited" gdb-exited) ("signalled" gdb-signalled) ("signal" gdb-signal) ("breakpoint" gdb-stopping) ("watchpoint" gdb-stopping) ("frame-begin" gdb-frame-begin) ("stopped" gdb-stopped) ("error-begin" gdb-error) ("error" gdb-error)) (#$ . 39047)) (defalias 'gdb-resync #[nil "\306\307\310\311\312\313\n#!\210\314\307\211\306\211 \207" [gdb-flush-pending-output gud-running font-lock-warning-face gdb-output-sink gdb-input-queue gdb-pending-triggers t nil gdb-force-mode-line-update propertize "stopped" face user gdb-prompting] 6]) (byte-code "\301B\302\303!\207" [current-load-list gdb-source-spec-regexp (lambda (#1=#:defconst-tmp-var) (defconst gdb-source-spec-regexp #1#)) "\\(.*\\):\\([0-9]*\\):[0-9]*:[a-z]*:0x0*\\([a-f0-9]*\\)"] 2) (defalias 'gdb-source #[(args) "\305 \"\210\306\307 \"\310\306\311 \"!B\306\312 \"\f\313=\205\314\211\207" [gdb-source-spec-regexp args gud-last-frame gdb-pc-address gdb-output-sink string-match match-string 1 string-to-number 2 3 inferior user] 5]) #@139 An annotation handler for `pre-prompt'. This terminates the collection of output from a previous command if that happens to be in effect. (defalias 'gdb-pre-prompt #[(ignored) "\303 \211\304=\203\305\202!\n\306=\203\307\211\202!\310 \210\311\312\n\")\207" [gdb-error gdb-output-sink sink nil user t emacs post-emacs gdb-resync error "Phase error in gdb-pre-prompt (got %s)"] 4 (#$ . 40432)]) #@82 An annotation handler for `prompt'. This sends the next command (if any) to gdb. (defalias 'gdb-prompt #[(ignored) "\203\306\307\310\311 #!\210\312 \210\313\n\211\314=\204: \315=\2032\314\fA@r\316\317!q\210 \210*\202:\320 \210\321\322 \"\210)\323 \211\203J\324!\202O\325\326 )\207" [gdb-first-prompt font-lock-variable-name-face gdb-output-sink sink gdb-current-item handler gdb-force-mode-line-update propertize "initializing..." face gdb-init-1 nil user post-emacs gdb-get-buffer-create gdb-partial-output-buffer gdb-resync error "Phase error in gdb-prompt (got %s)" gdb-dequeue-input gdb-send-item t gud-display-frame input gdb-prompting] 6 (#$ . 40839)]) #@50 An annotation handler for non-top-level prompts. (defalias 'gdb-subprompt #[(ignored) "\301\211\207" [gdb-prompting t] 2 (#$ . 41523)]) #@121 An annotation handler for `starting'. This says that I/O for the subprocess is now the program being debugged, not GDB. (defalias 'gdb-starting #[(ignored) "\306\211\n\211\307=\2037\306\310\311\312\313 \314#!\210\315 \210\311\211\311\205=\316\211\202=\317 \210\320\321!)\207" [gdb-active-process gdb-printing gdb-output-sink sink gud-running gdb-inferior-status t user "running" nil gdb-force-mode-line-update propertize face gdb-remove-text-properties inferior gdb-resync error "Unexpected `starting' annotation" gdb-signalled font-lock-type-face gud-overlay-arrow-position gud-old-arrow gdb-overlay-arrow-position gdb-stack-position gdb-use-separate-io-buffer] 6 (#$ . 41667)]) (defalias 'gdb-signal #[(ignored) "\303\304\305\306 #!\210\307\n!\207" [gdb-inferior-status font-lock-warning-face ignored "signal" gdb-force-mode-line-update propertize face gdb-stopping] 5]) #@144 An annotation handler for `breakpoint' and other annotations. They say that I/O for the subprocess is now GDB, not the program being debugged. (defalias 'gdb-stopping #[(ignored) "\205 \211\303=\203\304\211\202\305 \210\306\307!)\207" [gdb-use-separate-io-buffer gdb-output-sink sink inferior user gdb-resync error "Unexpected stopping annotation"] 3 (#$ . 42574)]) #@258 An annotation handler for `exited' and `signalled'. They say that I/O for the subprocess is now GDB, not the program being debugged and that the program is no longer running. This function is used to change the focus of GUD tooltips to #define directives. (defalias 'gdb-exited #[(ignored) "\306\211\306\211\306\307\310\311 \312\f#!\210\313 !\207" [gdb-active-process gud-overlay-arrow-position gdb-overlay-arrow-position gdb-stack-position gud-old-arrow gdb-inferior-status nil "exited" gdb-force-mode-line-update propertize face gdb-stopping font-lock-warning-face ignored] 6 (#$ . 42956)]) (defalias 'gdb-signalled #[(ignored) "\301\211\207" [gdb-signalled t] 2]) (defalias 'gdb-frame-begin #[(ignored) "\304\305\n\211\306=\203\307\211\202- \307=\203\304\202- \310=\203&\304\202-\311 \210\312\313 \")\207" [gdb-frame-begin gdb-printing gdb-output-sink sink t nil inferior user emacs gdb-resync error "Unexpected frame-begin annotation (%S)"] 4]) #@48 Non-nil means pop up GUD buffer in same frame. (custom-declare-variable 'gdb-same-frame 'focus-follows-mouse '(#$ . 43933) :group 'gud :type 'boolean :version "22.1") #@77 Non-nil means try to find a source frame further up stack e.g after signal. (custom-declare-variable 'gdb-find-source-frame 'nil '(#$ . 44106) :group 'gud :type 'boolean :version "22.1") #@128 Toggle trying to find a source frame further up stack. With arg, look for a source frame further up stack iff arg is positive. (defalias 'gdb-find-source-frame #[(arg) "\204 ?\202\302!\303V\304\305\306 \203\307\202\310\"!\207" [arg gdb-find-source-frame prefix-numeric-value 0 message format "Looking for source frame %sabled" "en" "dis"] 4 (#$ . 44300) "P"]) #@159 An annotation handler for `stopped'. It is just like `gdb-stopping', except that if we already set the output sink to `user' in `gdb-stopping', that is fine. (defalias 'gdb-stopped #[(ignored) "\306 \204>\n\204> \203\f\203 \202>\203\"\307 \210\202%\310 \210\203>\311\312!\2034\313\202<\314\312!\210\315 \210\316\317\235\204U\320\321\322\323\324 #!\210!\211\"\325=\203e\326!\202s\"\326=\204s\327 \210\330\331!\210)#\205}\332$!\207" [gud-running gud-overlay-arrow-position gud-last-frame gdb-frame-begin gdb-printing gud-old-arrow nil gdb-display-gdb-buffer gdb-frame-gdb-buffer gdb-get-buffer gdb-stack-buffer keep gdb-get-buffer-create gdb-invalidate-frames delete ("exited" "signal") t "stopped" gdb-force-mode-line-update propertize face inferior user gdb-resync error "Unexpected stopped annotation" gdb-exited gdb-same-frame gdb-find-source-frame gdb-look-up-stack gdb-inferior-status gdb-active-process font-lock-warning-face gdb-output-sink sink gdb-signalled ignored] 6 (#$ . 44678)]) (defalias 'gdb-error #[(ignored) "?\211\207" [gdb-error] 2]) #@139 An annotation handler for `post-prompt'. This begins the collection of output from the current command if that happens to be appropriate. (defalias 'gdb-post-prompt #[(ignored) "\204] \204]\306 \210\307 \210\310\311!\210\312 \210\n\313\230\203!\314 \210\202'\315 \210\316 \210\317 \210\n\313\230\2036\320 \210\2029\321 \210\322 \210 \323=\204]\324\304!\203]\325\f!\203]\n\313\230\203Z\326 \210\202]\327 \210\330 \211 \331=\203l\332\202\201 \333=\203y\334\211\202\201\335 \210\336\337 \")\207" [gdb-pending-triggers gdb-first-post-prompt gdb-version system-type speedbar-frame gdb-output-sink gdb-get-selected-frame gdb-invalidate-frames gdb-get-buffer-create gdb-breakpoints-buffer gdb-invalidate-breakpoints "pre-6.4" gdb-invalidate-registers gdb-get-changed-registers gdb-invalidate-registers-1 gdb-invalidate-memory gdb-invalidate-locals gdb-invalidate-locals-1 gdb-invalidate-threads darwin boundp frame-live-p gdb-var-update gdb-var-update-1 nil user t pre-emacs emacs gdb-resync error "Phase error in gdb-post-prompt (got %s)" sink] 4 (#$ . 45780)]) (byte-code "\301B\302\303!\207" [current-load-list gdb-buffer-list (lambda (#1=#:defconst-tmp-var) (defconst gdb-buffer-list #1#)) (gdb-stack-buffer gdb-locals-buffer gdb-registers-buffer gdb-threads-buffer)] 2) (defalias 'gdb-remove-text-properties #[nil "\305\211\203(\n@\306 !\211\203 r q\210\307\310ed\311#\210*)\nA\211\204*\305\207" [gdb-buffer-list buffertype #1=#:--cl-dolist-temp-- buffer inhibit-read-only nil gdb-get-buffer t remove-text-properties (mouse-face nil help-echo nil)] 5]) (defalias 'gdb-display-source-buffer #[(buffer) "\205\n\305\306@!!\211\206\n\205\307\n!\205\n\211\203& \310 \f\"\210 *\207" [gud-last-last-frame last-window gdb-source-window source-window buffer get-buffer-window gud-find-file window-live-p set-window-buffer] 4]) #@66 A gud marker filter for gdb. Handle a burst of output from GDB. (defalias 'gud-gdba-marker-filter #[(string) "?\205\231 \203!\306\nB B\f\203! G\fV\203!\fS \233\307\241\210 \nP\310\311\312 \"\203r\313\314 \"\315 \316\211\224O\" \316\225\307O\311\317\"\210\313\314\"\313\320\"\321\"\211\203nA@!\210,\202(\311\322 \"\203\215\315 \316\211\224O\" \316\224\307O\202\226\315 \"\310)\207" [gdb-flush-pending-output gdb-enable-debug string gdb-debug-log gdb-debug-log-max gud-marker-acc recv nil "" string-match "\n\\(.*\\)\n" match-string 1 gdb-concat-output 0 "\\(\\S-*\\) ?\\(.*\\)" 2 assoc "\n\\'\\|\n\\'\\|\n.*\\'" output annotation annotation-type annotation-arguments gdb-annotation-rules annotation-rule] 6 (#$ . 47649)]) (defalias 'gdb-concat-output #[(so-far new) "\203 \306\307 G\310\n %\210 \211\311=\203 P\202N\f\312=\204'\f\313=\203+ \202N\f\314=\2039\315 !\210 \202N\f\316=\203G\317 !\210 \202N\320 \210\321\322\f\")\207" [gdb-error new font-lock-warning-face gdb-output-sink sink so-far put-text-property 0 face user pre-emacs post-emacs emacs gdb-append-to-partial-output inferior gdb-append-to-inferior-io gdb-resync error "Bogon output sink %S"] 7]) (defalias 'gdb-append-to-partial-output #[(string) "r\301\302!q\210db\210c)\207" [string gdb-get-buffer-create gdb-partial-output-buffer] 2]) (defalias 'gdb-clear-partial-output #[nil "r\300\301!q\210\302 )\207" [gdb-get-buffer-create gdb-partial-output-buffer erase-buffer] 2]) (defalias 'gdb-append-to-inferior-io #[(string) "r\301\302!q\210db\210\303!\210)\304\230?\205\305\301\302!\306\"\207" [string gdb-get-buffer-create gdb-inferior-io insert-before-markers "" gdb-display-buffer t] 3]) (defalias 'gdb-clear-inferior-io #[nil "r\300\301!q\210\302 )\207" [gdb-get-buffer-create gdb-inferior-io erase-buffer] 2]) (defalias 'def-gdb-auto-update-trigger '(macro . #[(name demand-predicate gdb-command output-handler) "\304\305\306\307 \310\311\312D\313BBDE\314\315\316\n\312 DED\317\312D\320BBEEF\207" [name demand-predicate gdb-command output-handler defun (&optional ignored) if and not member quote (gdb-pending-triggers) progn gdb-enqueue-input list push (gdb-pending-triggers)] 11])) (defalias 'def-gdb-auto-update-handler '(macro . #[(name trigger buf-key custom-defun) "\304\305\306\307\310\311 D\312BBE\313\314\315\311\nDDDC\316BB C\257\207" [name trigger buf-key custom-defun defun nil setq gdb-pending-triggers delq quote (gdb-pending-triggers) let buf gdb-get-buffer ((and buf (with-current-buffer buf (let* ((window (get-buffer-window buf 0)) (start (window-start window)) (p (window-point window)) (buffer-read-only nil)) (erase-buffer) (insert-buffer-substring (gdb-get-buffer-create 'gdb-partial-output-buffer)) (set-window-start window start) (set-window-point window p)))))] 9])) (defalias 'def-gdb-auto-updated-buffer '(macro . #[(buffer-key trigger-name gdb-command output-handler-name custom-defun) "\305\306\307\310 DD\n \257\311  \f\257E\207" [trigger-name buffer-key gdb-command output-handler-name custom-defun progn def-gdb-auto-update-trigger gdb-get-buffer quote def-gdb-auto-update-handler] 7])) (gdb-set-buffer-rules 'gdb-breakpoints-buffer 'gdb-breakpoints-buffer-name 'gdb-breakpoints-mode) (defalias 'gdb-invalidate-breakpoints #[(&optional ignored) "\301\302!\205\303\235?\205\304\305\306D!\210\303B\211\207" [gdb-pending-triggers gdb-get-buffer gdb-breakpoints-buffer gdb-invalidate-breakpoints gdb-enqueue-input "server info breakpoints\n" gdb-info-breakpoints-handler] 3]) (defalias 'gdb-info-breakpoints-handler #[nil "\306\307\"\310\311!\211\2034r q\210\312 \313\"\314\n!\315\n!\316\317 \210\320\321\322!!\210\323\n \"\210\324\n\f\"\210-)\325 \207" [gdb-pending-triggers buf window start p buffer-read-only delq gdb-invalidate-breakpoints gdb-get-buffer gdb-breakpoints-buffer get-buffer-window 0 window-start window-point nil erase-buffer insert-buffer-substring gdb-get-buffer-create gdb-partial-output-buffer set-window-start set-window-point gdb-info-breakpoints-custom] 4]) #@36 XPM data used for breakpoint icon. (defconst breakpoint-xpm-data "/* XPM */\nstatic char *magick[] = {\n/* columns rows colors chars-per-pixel */\n\"10 10 2 1\",\n\" c red\",\n\"+ c None\",\n/* pixels */\n\"+++ +++\",\n\"++ ++\",\n\"+ +\",\n\" \",\n\" \",\n\" \",\n\" \",\n\"+ +\",\n\"++ ++\",\n\"+++ +++\",\n};" (#$ . 51737)) #@44 PBM data used for enabled breakpoint icon. (defconst breakpoint-enabled-pbm-data "P1\n10 10\",\n0 0 0 0 1 1 1 1 0 0 0 0\n0 0 0 1 1 1 1 1 1 0 0 0\n0 0 1 1 1 1 1 1 1 1 0 0\n0 1 1 1 1 1 1 1 1 1 1 0\n0 1 1 1 1 1 1 1 1 1 1 0\n0 1 1 1 1 1 1 1 1 1 1 0\n0 1 1 1 1 1 1 1 1 1 1 0\n0 0 1 1 1 1 1 1 1 1 0 0\n0 0 0 1 1 1 1 1 1 0 0 0\n0 0 0 0 1 1 1 1 0 0 0 0" (#$ . 52137)) #@45 PBM data used for disabled breakpoint icon. (defconst breakpoint-disabled-pbm-data "P1\n10 10\",\n0 0 1 0 1 0 1 0 0 0\n0 1 0 1 0 1 0 1 0 0\n1 0 1 0 1 0 1 0 1 0\n0 1 0 1 0 1 0 1 0 1\n1 0 1 0 1 0 1 0 1 0\n0 1 0 1 0 1 0 1 0 1\n1 0 1 0 1 0 1 0 1 0\n0 1 0 1 0 1 0 1 0 1\n0 0 1 0 1 0 1 0 1 0\n0 0 0 1 0 1 0 1 0 0" (#$ . 52503)) #@48 Icon for enabled breakpoint in display margin. (defvar breakpoint-enabled-icon nil (#$ . 52831)) #@49 Icon for disabled breakpoint in display margin. (defvar breakpoint-disabled-icon nil (#$ . 52934)) (byte-code "\301 \203\302\303\304\"\203\302\305\306\"\210\307\310\311\312\313\314%\210\307\315\316\317\313\314%\210\320B\321\322!\207" [current-load-list display-images-p define-fringe-bitmap breakpoint "<~\xff\xff\xff\xff~<" hollow-right-triangle "\xe0\x90\x88\x84\x84\x88\x90\xe0" custom-declare-face breakpoint-enabled ((t :foreground "red" :weight bold)) "Face for enabled breakpoint icon in fringe." :group gud breakpoint-disabled ((((class color) (min-colors 88)) :foreground "grey70") (((class color) (min-colors 8) (background light)) :foreground "black") (((class color) (min-colors 8) (background dark)) :foreground "white") (((type tty) (class mono)) :inverse-video t) (t :background "gray")) "Face for disabled breakpoint icon in fringe." gdb-breakpoint-regexp (lambda (#1=#:defconst-tmp-var) (defconst gdb-breakpoint-regexp #1#)) "\\([0-9]+\\).*?\\(?:point\\|catch\\s-+\\S-+\\)\\s-+\\S-+\\s-+\\(.\\)\\s-+"] 6) (defalias 'gdb-info-breakpoints-custom #[nil "\306\211\307 \306\211\203/ @r\nq\210\f\310>\203'\311\312\313 \"\204'\314ed\"\210) A\211\204 *r\315\316!q\210\212\306eb\210`dSW\203(\317y\210\3208!\203\"\321\317!\322\224f\323\322\224\322\225 \324=\203d\325\202e\326#\210`\327 9:\330\3319\332#\203\373\323\317\224\317\225\333#\210\320\334!\210\321\322!\321\317!;<\323:9\335#\210\336;!\204\244\337=\"A;;\203\331;\340\230\204\331r\341;\342\"q\210\343\304!\210\344\343\345!\210>%\212\346\347" (face font-lock-function-name-face) re-search-backward "\\s-\\(\\S-*\\)" (face font-lock-variable-name-face) gdb-assembler-buffer gdb-assembler-custom gdb-breakpoint-regexp el bl file line gdb-location-alist gud-tool-bar-map gdb-server-prefix] 8]) #@62 Set/clear breakpoint in left fringe/margin with mouse click. (defalias 'gdb-mouse-set-clear-breakpoint #[(event) "\305!\210\211:\203\3068:\203\306\202\3078\202\"\310 `\311\312F)\211\313\n8\206=\307\n8:\203:\307\n8@\202=\307\n8)\247\205\260\310 \314\315\316 \"r\317\216\320 \312\n8)\321\"\210\212 \313\n8\206r\307\n8:\203o\307\n8@\202r\307\n8)b\210 \322\n!\206\200\323\n!)\204\246\324 \313\n8\206\236\307\n8:\203\233\307\n8@\202\236\307\n8)!@\325=\203\254\326\327!\202\257\330\327!-)\207" [event posn position save-selected-window-alist save-selected-window-window mouse-minibuffer-check 2 1 selected-window (0 . 0) 0 5 mapcar #[(frame) "\301!D\207" [frame frame-selected-window] 3] frame-list ((byte-code "\305\211\203/\n@\306 @!\203(\307 \211A@)!\203(\310 @ \211A@)\"\210\nA\211\204*\307\f!\203;\311\f\312\"\210\305\207" [save-selected-window-alist elt #1=#:--cl-dolist-temp-- x save-selected-window-window nil frame-live-p window-live-p set-frame-selected-window select-window norecord] 4)) select-window norecord posn-image posn-string fringe-bitmaps-at-pos breakpoint gud-remove nil gud-break] 5 (#$ . 55821) "e"]) #@60 Enable/disable breakpoint in left margin with mouse click. (defalias 'gdb-mouse-toggle-breakpoint-margin #[(event) "\306!\210\211:\203\3078:\203\307\202\3108\202\"\311 `\312\313F)\211\314\n8\206=\310\n8:\203:\310\n8@\202=\310\n8)\247\205\256\311 \315\316\317 \"r\320\216\321 \313\n8)\322\"\210\212 \314\n8\206r\310\n8:\203o\310\n8@\202r\310\n8)b\210 \323\n!\206\200\324\n!)\205\255\325\326\313\327 \330\n8)@#\326\313\331 \330\n8)@#\203\245\332\202\246\333 \334R)\335D!-)\207" [event posn position save-selected-window-alist save-selected-window-window bptno mouse-minibuffer-check 2 1 selected-window (0 . 0) 0 5 mapcar #[(frame) "\301!D\207" [frame frame-selected-window] 3] frame-list ((byte-code "\305\211\203/\n@\306 @!\203(\307 \211A@)!\203(\310 @ \211A@)\"\210\nA\211\204*\307\f!\203;\311\f\312\"\210\305\207" [save-selected-window-alist elt #1=#:--cl-dolist-temp-- x save-selected-window-window nil frame-live-p window-live-p set-frame-selected-window select-window norecord] 4)) select-window norecord posn-image posn-string gdb-enqueue-input get-text-property gdb-bptno 4 gdb-enabled "disable " "enable " "\n" ignore gdb-server-prefix] 8 (#$ . 56995) "e"]) #@60 Enable/disable breakpoint in left fringe with mouse click. (defalias 'gdb-mouse-toggle-breakpoint-fringe #[(event) "\306!\210\211:\203\3078:\203\307\202\3108\202\"\311 `\312\313F)\211\314\n8\206=\310\n8:\203:\310\n8@\202=\310\n8)\315 \247\205\261\311 \316\317\320 \"!r\321\216\322 \313\n8)\323\"\210\212\324\311 !q\210 b\210\325 \211\"\315\"\211#\203\220#@\"\326\"\327\"\203\207\326\"\330\"#A\211#\204t*\f;\205\260\331$\332\313\333\f#\203\245\334\202\246\335\332\313\336\f#\337R\340D!-+\207" [event posn position pos obj save-selected-window-alist mouse-minibuffer-check 2 1 selected-window (0 . 0) 0 5 nil mapcar #[(frame) "\301!D\207" [frame frame-selected-window] 3] frame-list ((byte-code "\305\211\203/\n@\306 @!\203(\307 \211A@)!\203(\310 @ \211A@)\"\210\nA\211\204*\307\f!\203;\311\f\312\"\210\305\207" [save-selected-window-alist elt #1=#:--cl-dolist-temp-- x save-selected-window-window nil frame-live-p window-live-p set-frame-selected-window select-window norecord] 4)) select-window norecord window-buffer overlays-in overlay-get put-break before-string gdb-enqueue-input get-text-property gdb-enabled "disable " "enable " gdb-bptno "\n" ignore save-selected-window-window overlay #2=#:--cl-dolist-temp-- gdb-server-prefix] 8 (#$ . 58217) "e"]) (defalias 'gdb-breakpoints-buffer-name #[nil "rq\210\301\302 \303Q)\207" [gud-comint-buffer "*breakpoints of " gdb-get-target-string "*"] 3]) #@46 Display status of user-settable breakpoints. (defalias 'gdb-display-breakpoints-buffer #[nil "\300\301\302!\303\"\207" [gdb-display-buffer gdb-get-buffer-create gdb-breakpoints-buffer t] 3 (#$ . 59677) nil]) #@61 Display status of user-settable breakpoints in a new frame. (defalias 'gdb-frame-breakpoints-buffer #[nil "\303\304\" \305\306\307!!*\207" [special-display-regexps gdb-frame-parameters special-display-frame-alist append (".*") display-buffer gdb-get-buffer-create gdb-breakpoints-buffer] 3 (#$ . 59891) nil]) (byte-code "\303B\304\303!\204_\305\303\306 \306\307!\310 \311\312#\210\310 \313\314#\210\310 \315\316#\210\310 \317\320#\210\321\n!\210\310\n\322\307 B#\210\310\n\323\324#\210\310\n\325\326#\210\310\n\327\330#\210\310\n\331\332#\210\310\n\333\332#\210\310\n\334\335#\210\n*\"\210\303\207" [current-load-list menu map gdb-breakpoints-mode-map default-boundp set-default make-sparse-keymap "Breakpoints" define-key [quit] ("Quit" . gdb-delete-frame-or-window) [goto] ("Goto" . gdb-goto-breakpoint) [delete] ("Delete" . gdb-delete-breakpoint) [toggle] ("Toggle" . gdb-toggle-breakpoint) suppress-keymap [menu-bar breakpoints] " " gdb-toggle-breakpoint "D" gdb-delete-breakpoint "q" gdb-delete-frame-or-window " " gdb-goto-breakpoint [mouse-2] [follow-link] mouse-face] 7) #@73 Delete frame if there is only one window. Otherwise delete the window. (defalias 'gdb-delete-frame-or-window #[nil "\300 \203\301 \207\302 \207" [one-window-p delete-frame delete-window] 1 (#$ . 60984) nil]) #@62 Major mode for gdb breakpoints. \{gdb-breakpoints-mode-map} (defalias 'gdb-breakpoints-mode #[nil "\305 \210\306\307\310\n!\210\311\312\313!\210\314\315\f\"\316=\203\317\207\320\207" [major-mode mode-name gdb-breakpoints-mode-map buffer-read-only gud-comint-buffer kill-all-local-variables gdb-breakpoints-mode "Breakpoints" use-local-map t run-mode-hooks gdb-breakpoints-mode-hook buffer-local-value gud-minor-mode gdba gdb-invalidate-breakpoints gdbmi-invalidate-breakpoints] 3 (#$ . 61201)]) #@44 Enable/disable breakpoint at current line. (defalias 'gdb-toggle-breakpoint #[nil "\212\302\303!\210\304!\203%\305 \306\224f\307=\203\310\202\311\312\303!\313R\314D!\202(\315\316!)\207" [gdb-breakpoint-regexp gdb-server-prefix beginning-of-line 1 looking-at gdb-enqueue-input 2 121 "disable " "enable " match-string "\n" ignore error "Not recognized as break/watchpoint line"] 5 (#$ . 61708) nil]) #@40 Delete the breakpoint at current line. (defalias 'gdb-delete-breakpoint #[nil "\302\303!\210\304!\203\305 \306\307\303!\310R\311D!\207\312\313!\207" [gdb-breakpoint-regexp gdb-server-prefix beginning-of-line 1 looking-at gdb-enqueue-input "delete " match-string "\n" ignore error "Not recognized as break/watchpoint line"] 5 (#$ . 62119) nil]) #@60 Display the breakpoint location specified at current line. (defalias 'gdb-goto-breakpoint #[(&optional event) "\203&\306\211:\203\3078:\203\307\202\3108\202#\311 `\312\313F)!\210\212\314\310!\210\315\316!\203\202\317\310!\317\307!\317\320!\311 \321\322\323 \"r\324\216\325\326\n!\203T\n\202Z\327 \"A! \330 !\206h\331 !\211!\"r q\210\332\333 !!\210\334!`\".\n\202\205\335\336!)\207" [event line file bptno save-selected-window-alist save-selected-window-window posn-set-point 2 1 selected-window (0 . 0) 0 beginning-of-line looking-at "\\([0-9]+\\) .+ in .+ at\\s-+\\(\\S-+\\):\\([0-9]+\\)" match-string 3 mapcar #[(frame) "\301!D\207" [frame frame-selected-window] 3] frame-list ((byte-code "\305\211\203/\n@\306 @!\203(\307 \211A@)!\203(\310 @ \211A@)\"\210\nA\211\204*\307\f!\203:\311\f!\210\305\207" [save-selected-window-alist elt #1=#:--cl-dolist-temp-- x save-selected-window-window nil frame-live-p window-live-p set-frame-selected-window select-window] 4)) find-file-noselect file-exists-p assoc gdb-display-source-buffer display-buffer goto-line string-to-number set-window-point error "No location specified." gdb-location-alist buffer window gdb-source-window] 6 (#$ . 62472) (list last-input-event)]) #@51 Maximum number of frames displayed in call stack. (custom-declare-variable 'gdb-max-frames '40 '(#$ . 63738) :type 'integer :group 'gud :version "22.1") (gdb-set-buffer-rules 'gdb-stack-buffer 'gdb-stack-buffer-name 'gdb-frames-mode) (defalias 'gdb-invalidate-frames #[(&optional ignored) "\302\303!\205\304\235?\205\305\306\307 !\310Q\311D!\210\304B\211\207" [gdb-pending-triggers gdb-max-frames gdb-get-buffer gdb-stack-buffer gdb-invalidate-frames gdb-enqueue-input "server info stack " number-to-string "\n" gdb-info-stack-handler] 4]) (defalias 'gdb-info-stack-handler #[nil "\306\307\"\310\311!\211\2034r q\210\312 \313\"\314\n!\315\n!\316\317 \210\320\321\322!!\210\323\n \"\210\324\n\f\"\210-)\325 \207" [gdb-pending-triggers buf window start p buffer-read-only delq gdb-invalidate-frames gdb-get-buffer gdb-stack-buffer get-buffer-window 0 window-start window-point nil erase-buffer insert-buffer-substring gdb-get-buffer-create gdb-partial-output-buffer set-window-start set-window-point gdb-info-stack-custom] 4]) (defalias 'gdb-info-stack-custom #[nil "r\306\307!q\210\212\310=\204\307\311\211\211eb\210`dW\203\265\312 \313 \314\315!\203.\316\n \317#\210\nb\210\314\320!\203\257\321\322!\f\230\203_\323 @\324V\203V \204N\325  `\311\223\210\202_\326\n\211\327\\\330\331$\210\332\321\322!\333\230\203l\334\202m\335\336P \337#\203\257\326\322\224\322\225\3300$\210\324\225\332\340 \337#\203\227\326\322\224\322\225\3300$\210\202\202\nb\210\332\341 \337#\203\257\326\322\224\322\225\3301$\210\202\232\322y\210\202\342y\210\314\343!\203\306\316\324\224\324\225\344#\210+\203eb\210\332\345\311\337#\203\312 \321\322!\321\346!234\347\3504\337#\210\3515\352\321\322!\353R\354D!\210\3515\355P\356D!\210+*\310=\203\357\306\307!!\210\311\211\207" [gdb-look-up-stack el bl buffer-read-only gdb-frame-number gdb-stack-position gdb-get-buffer gdb-stack-buffer delete nil line-beginning-position line-end-position looking-at "#" add-text-properties (mouse-face highlight help-echo "mouse-2, RET: Select frame") "^#\\([0-9]+\\)" match-string 1 window-fringes 0 make-marker put-text-property 4 face (:inverse-video t) re-search-forward "0" "" " in " "\\([^ ]+\\) (" t "<\\([^>]+\\)>" "\\(\\(\\sw\\|[_.]\\)+\\)=" -1 "(More stack frames follow...)" (mouse-face highlight gdb-max-frames t help-echo "mouse-2, RET: customize gdb-max-frames to see more frames") "\\(\\S-+?\\):\\([0-9]+\\)" 2 re-search-backward "^#*\\([0-9]+\\)" gdb-enqueue-input "frame " "\n" gdb-set-hollow "frame 0\n" ignore kill-buffer font-lock-function-name-face font-lock-variable-name-face line file start gdb-server-prefix] 5]) (defalias 'gdb-set-hollow #[nil "\205r\302@!q\210\303\211)\207" [gud-last-last-frame fringe-indicator-alist gud-find-file ((overlay-arrow . hollow-right-triangle))] 2]) (defalias 'gdb-stack-buffer-name #[nil "rq\210\301\302 \303Q)\207" [gud-comint-buffer "*stack frames of " gdb-get-target-string "*"] 3]) #@37 Display backtrace of current stack. (defalias 'gdb-display-stack-buffer #[nil "\300\301\302!\303\"\207" [gdb-display-buffer gdb-get-buffer-create gdb-stack-buffer t] 3 (#$ . 66709) nil]) #@52 Display backtrace of current stack in a new frame. (defalias 'gdb-frame-stack-buffer #[nil "\303\304\" \305\306\307!!*\207" [special-display-regexps gdb-frame-parameters special-display-frame-alist append (".*") display-buffer gdb-get-buffer-create gdb-stack-buffer] 3 (#$ . 66902) nil]) (byte-code "\302B\303\302!\204/\304\302\305 \306 !\210\307 \310\311#\210\307 \312\313#\210\307 \314\313#\210\307 \315\316#\210 )\"\210\302\207" [current-load-list map gdb-frames-mode-map default-boundp set-default make-sparse-keymap suppress-keymap define-key "q" kill-this-buffer " " gdb-frames-select [mouse-2] [follow-link] mouse-face] 6) #@56 Major mode for gdb call stack. \{gdb-frames-mode-map} (defalias 'gdb-frames-mode #[nil "\306 \210\307\310\311\312\313\302\"\210\314\211\315 !\210\316\317!\210\320\321\"\322=\203&\323\207\324\207" [major-mode mode-name gdb-stack-position truncate-lines buffer-read-only gdb-frames-mode-map kill-all-local-variables gdb-frames-mode "Frames" nil add-to-list overlay-arrow-variable-list t use-local-map run-mode-hooks gdb-frames-mode-hook buffer-local-value gud-minor-mode gdba gdb-invalidate-frames gdbmi-invalidate-frames gud-comint-buffer] 4 (#$ . 67545)]) (defalias 'gdb-get-frame-number #[nil "\212\302\210\303 \304\305\306#\211\203\307\310!\206\311+\207" [start pos nil line-beginning-position re-search-backward "^#*\\([0-9]+\\)" t match-string 1 "0"] 5]) #@51 Select the frame and display the relevant source. (defalias 'gdb-frames-select #[(&optional event) "\203&\302\211:\203\3038:\203\303\202\3048\202#\305 `\306\307F)!\210\310`\311\"\2035\312\313!\210\314\311!\207\315 \316\317 \320R\321D!\207" [event gdb-server-prefix posn-set-point 2 1 selected-window (0 . 0) 0 get-text-property gdb-max-frames message-box "After setting gdb-max-frames, you need to enter\nanother GDB command e.g pwd, to see new frames" customize-variable-other-window gdb-enqueue-input "frame " gdb-get-frame-number "\n" ignore] 6 (#$ . 68327) (list last-input-event)]) (gdb-set-buffer-rules 'gdb-threads-buffer 'gdb-threads-buffer-name 'gdb-threads-mode) (defalias 'gdb-invalidate-threads #[(&optional ignored) "\302\303!\205\304\235?\205\305 \306P\307D!\210\304B\211\207" [gdb-pending-triggers gdb-server-prefix gdb-get-buffer gdb-threads-buffer gdb-invalidate-threads gdb-enqueue-input "info threads\n" gdb-info-threads-handler] 3]) (defalias 'gdb-info-threads-handler #[nil "\306\307\"\310\311!\211\2034r q\210\312 \313\"\314\n!\315\n!\316\317 \210\320\321\322!!\210\323\n \"\210\324\n\f\"\210-)\325 \207" [gdb-pending-triggers buf window start p buffer-read-only delq gdb-invalidate-threads gdb-get-buffer gdb-threads-buffer get-buffer-window 0 window-start window-point nil erase-buffer insert-buffer-substring gdb-get-buffer-create gdb-partial-output-buffer set-window-start set-window-point gdb-info-threads-custom] 4]) (defalias 'gdb-info-threads-custom #[nil "r\301\302!q\210\303\212eb\210`dW\205&\304\305!\204 \306\307 \310 \311#\210\312y\210\202\f+\207" [buffer-read-only gdb-get-buffer gdb-threads-buffer nil looking-at "No " add-text-properties line-beginning-position line-end-position (mouse-face highlight help-echo "mouse-2, RET: select thread") 1] 4]) (defalias 'gdb-threads-buffer-name #[nil "rq\210\301\302 \303Q)\207" [gud-comint-buffer "*threads of " gdb-get-target-string "*"] 3]) #@41 Display IDs of currently known threads. (defalias 'gdb-display-threads-buffer #[nil "\300\301\302!\303\"\207" [gdb-display-buffer gdb-get-buffer-create gdb-threads-buffer t] 3 (#$ . 70289) nil]) #@56 Display IDs of currently known threads in a new frame. (defalias 'gdb-frame-threads-buffer #[nil "\303\304\" \305\306\307!!*\207" [special-display-regexps gdb-frame-parameters special-display-frame-alist append (".*") display-buffer gdb-get-buffer-create gdb-threads-buffer] 3 (#$ . 70490) nil]) (byte-code "\302B\303\302!\204/\304\302\305 \306 !\210\307 \310\311#\210\307 \312\313#\210\307 \314\313#\210\307 \315\316#\210 )\"\210\302\207" [current-load-list map gdb-threads-mode-map default-boundp set-default make-sparse-keymap suppress-keymap define-key "q" kill-this-buffer " " gdb-threads-select [mouse-2] [follow-link] mouse-face] 6) #@48 Font lock keywords used in `gdb-threads-mode'. (defvar gdb-threads-font-lock-keywords '((") +\\([^ ]+\\) (" (1 font-lock-function-name-face)) ("in \\([^ ]+\\) (" (1 font-lock-function-name-face)) ("\\(\\(\\sw\\|[_.]\\)+\\)=" (1 font-lock-variable-name-face))) (#$ . 71143)) #@54 Major mode for gdb threads. \{gdb-threads-mode-map} (defalias 'gdb-threads-mode #[nil "\305 \210\306\307\310\311 !\210\312\304!\210\313\314\315!\210\316\207" [major-mode mode-name buffer-read-only gdb-threads-mode-map font-lock-defaults kill-all-local-variables gdb-threads-mode "Threads" t use-local-map make-local-variable (gdb-threads-font-lock-keywords) run-mode-hooks gdb-threads-mode-hook gdb-invalidate-threads] 2 (#$ . 71423)]) (defalias 'gdb-get-thread-number #[nil "\212\300\301\302\303#\210\304\305!)\207" [re-search-backward "^\\s-*\\([0-9]*\\)" nil t match-string-no-properties 1] 4]) #@52 Select the thread and display the relevant source. (defalias 'gdb-threads-select #[(&optional event) "\203&\302\211:\203\3038:\203\303\202\3048\202#\305 `\306\307F)!\210\310 \311\312 \313R\314D!\210\315 \207" [event gdb-server-prefix posn-set-point 2 1 selected-window (0 . 0) 0 gdb-enqueue-input "thread " gdb-get-thread-number "\n" ignore gud-display-frame] 6 (#$ . 72032) (list last-input-event)]) #@49 Non-nil means include floating-point registers. (custom-declare-variable 'gdb-all-registers 'nil '(#$ . 72452) :type 'boolean :group 'gud :version "22.1") (gdb-set-buffer-rules 'gdb-registers-buffer 'gdb-registers-buffer-name 'gdb-registers-mode) (defalias 'gdb-invalidate-registers #[(&optional ignored) "\303\304!\205 \305\235?\205 \306 \307\n\205\310\311R\312D!\210\305B\211\207" [gdb-pending-triggers gdb-server-prefix gdb-all-registers gdb-get-buffer gdb-registers-buffer gdb-invalidate-registers gdb-enqueue-input "info " "all-" "registers\n" gdb-info-registers-handler] 5]) (defalias 'gdb-info-registers-handler #[nil "\306\307\"\310\311!\211\2034r q\210\312 \313\"\314\n!\315\n!\316\317 \210\320\321\322!!\210\323\n \"\210\324\n\f\"\210-)\325 \207" [gdb-pending-triggers buf window start p buffer-read-only delq gdb-invalidate-registers gdb-get-buffer gdb-registers-buffer get-buffer-window 0 window-start window-point nil erase-buffer insert-buffer-substring gdb-get-buffer-create gdb-partial-output-buffer set-window-start set-window-point gdb-info-registers-custom] 4]) (defalias 'gdb-info-registers-custom #[nil "r\304\305!q\210\212\306\211\211eb\210`dW\205>\307 \310 \311\312!\2038\313\314!\315\230\2048\316 \314\225\317 $\210\320 \321#\210\322y\210\202-\207" [end start buffer-read-only font-lock-variable-name-face gdb-get-buffer gdb-registers-buffer nil line-beginning-position line-end-position looking-at "^[^ ]+" match-string 0 "The" put-text-property face add-text-properties (help-echo "mouse-2: edit value" mouse-face highlight) 1] 5]) (defalias 'gdb-edit-register-value #[(&optional event) "\212\203'\304\211:\203\3058:\203\305\202\3068\202$\307 `\310\311F)!\210\312 \210\313 \314\315\316 \"!\317 \320 \321\n\322\260\323D!+\207" [event register value gdb-server-prefix posn-set-point 2 1 selected-window (0 . 0) 0 beginning-of-line current-word read-string format "New value (%s): " gdb-enqueue-input "set $" "=" "\n" ignore] 8 nil (list last-input-event)]) (byte-code "\302B\303\302!\204/\304\302\305 \306 !\210\307 \310\311#\210\307 \312\311#\210\307 \313\314#\210\307 \315\316#\210 )\"\210\302\207" [current-load-list map gdb-registers-mode-map default-boundp set-default make-sparse-keymap suppress-keymap define-key " " gdb-edit-register-value [mouse-2] " " gdb-all-registers "q" kill-this-buffer] 6) #@58 Major mode for gdb registers. \{gdb-registers-mode-map} (defalias 'gdb-registers-mode #[nil "\306 \210\307\310\311\312 !\210\313\314!\210\f\315\230\203 \203\316\317\207\320\207" [major-mode mode-name buffer-read-only gdb-registers-mode-map gdb-version gdb-all-registers kill-all-local-variables gdb-registers-mode "Registers" t use-local-map run-mode-hooks gdb-registers-mode-hook "pre-6.4" "Registers:All" gdb-invalidate-registers gdb-invalidate-registers-1] 2 (#$ . 74833)]) (defalias 'gdb-registers-buffer-name #[nil "rq\210\301\302 \303Q)\207" [gud-comint-buffer "*registers of " gdb-get-target-string "*"] 3]) #@36 Display integer register contents. (defalias 'gdb-display-registers-buffer #[nil "\300\301\302!\303\"\207" [gdb-display-buffer gdb-get-buffer-create gdb-registers-buffer t] 3 (#$ . 75464) nil]) #@51 Display integer register contents in a new frame. (defalias 'gdb-frame-registers-buffer #[nil "\303\304\" \305\306\307!!*\207" [special-display-regexps gdb-frame-parameters special-display-frame-alist append (".*") display-buffer gdb-get-buffer-create gdb-registers-buffer] 3 (#$ . 75664) nil]) #@68 Toggle the display of floating-point registers (pre GDB 6.4 only). (defalias 'gdb-all-registers #[nil "\303\230\2054 \203\304r\305\306!q\210\307)\202#\310r\305\306!q\210\311)\312\313\314 \203.\315\202/\316\"!\210\317 \207" [gdb-version gdb-all-registers mode-name "pre-6.4" nil gdb-get-buffer-create gdb-registers-buffer "Registers" t "Registers:All" message format "Display of floating-point registers %sabled" "en" "dis" gdb-invalidate-registers] 4 (#$ . 75968) nil]) #@40 Number of data items in memory window. (custom-declare-variable 'gdb-memory-repeat-count '32 '(#$ . 76455) :type 'integer :group 'gud :version "22.1") #@48 Display format of data items in memory window. (custom-declare-variable 'gdb-memory-format '"x" '(#$ . 76612) :type '(choice (const :tag "Hexadecimal" "x") (const :tag "Signed decimal" "d") (const :tag "Unsigned decimal" "u") (const :tag "Octal" "o") (const :tag "Binary" "t")) :group 'gud :version "22.1") #@43 Unit size of data items in memory window. (custom-declare-variable 'gdb-memory-unit '"w" '(#$ . 76925) :type '(choice (const :tag "Byte" "b") (const :tag "Halfword" "h") (const :tag "Word" "w") (const :tag "Giant word" "g")) :group 'gud :version "22.1") (gdb-set-buffer-rules 'gdb-memory-buffer 'gdb-memory-buffer-name 'gdb-memory-mode) (defalias 'gdb-invalidate-memory #[(&optional ignored) "\306\307!\205#\310\235?\205#\311 \312\313\n! \f\314 \315\260\316D!\210\310B\211\207" [gdb-pending-triggers gdb-server-prefix gdb-memory-repeat-count gdb-memory-format gdb-memory-unit gdb-memory-address gdb-get-buffer gdb-memory-buffer gdb-invalidate-memory gdb-enqueue-input "x/" number-to-string " " "\n" gdb-read-memory-handler] 9]) (defalias 'gdb-read-memory-handler #[nil "\306\307\"\310\311!\211\2034r q\210\312 \313\"\314\n!\315\n!\316\317 \210\320\321\322!!\210\323\n \"\210\324\n\f\"\210-)\325 \207" [gdb-pending-triggers buf window start p buffer-read-only delq gdb-invalidate-memory gdb-get-buffer gdb-memory-buffer get-buffer-window 0 window-start window-point nil erase-buffer insert-buffer-substring gdb-get-buffer-create gdb-partial-output-buffer set-window-start set-window-point gdb-read-memory-custom] 4]) (defalias 'gdb-read-memory-custom #[nil "\212eb\210\301\302!\205\303\304!\211)\207" [gdb-memory-address looking-at "0x[[:xdigit:]]+" match-string 0] 2]) (byte-code "\302B\303\302!\204\304\302\305 \306 !\210\307 \310\311#\210 )\"\210\302\207" [current-load-list map gdb-memory-mode-map default-boundp set-default make-sparse-keymap suppress-keymap define-key "q" kill-this-buffer] 6) #@31 Set the start memory address. (defalias 'gdb-memory-set-address #[(event) "\306 \307\310\311 \"r\312\216\313\n\211:\203\314\n8\202 \306 `\315\316F)\316 8)!\210\317\320!\211)\321 ,\207" [save-selected-window-alist save-selected-window-window event position arg gdb-memory-address selected-window mapcar #[(frame) "\301!D\207" [frame frame-selected-window] 3] frame-list ((byte-code "\305\211\203/\n@\306 @!\203(\307 \211A@)!\203(\310 @ \211A@)\"\210\nA\211\204*\307\f!\203:\311\f!\210\305\207" [save-selected-window-alist elt #1=#:--cl-dolist-temp-- x save-selected-window-window nil frame-live-p window-live-p set-frame-selected-window select-window] 4)) select-window 1 (0 . 0) 0 read-from-minibuffer "Memory address: " gdb-invalidate-memory] 6 (#$ . 78552) "e"]) #@48 Set the number of data items in memory window. (defalias 'gdb-memory-set-repeat-count #[(event) "\306 \307\310\311 \"r\312\216\313\n\211:\203\314\n8\202 \306 `\315\316F)\316 8)!\210\317\320!\321\f!\211\316X\203<\322\323!\202C\324\325 \"\210\326 .\207" [save-selected-window-alist save-selected-window-window event position arg count selected-window mapcar #[(frame) "\301!D\207" [frame frame-selected-window] 3] frame-list ((byte-code "\305\211\203/\n@\306 @!\203(\307 \211A@)!\203(\310 @ \211A@)\"\210\nA\211\204*\307\f!\203:\311\f!\210\305\207" [save-selected-window-alist elt #1=#:--cl-dolist-temp-- x save-selected-window-window nil frame-live-p window-live-p set-frame-selected-window select-window] 4)) select-window 1 (0 . 0) 0 read-from-minibuffer "Repeat count: " string-to-number error "Positive numbers only" customize-set-variable gdb-memory-repeat-count gdb-invalidate-memory] 6 (#$ . 79347) "e"]) #@35 Set the display format to binary. (defalias 'gdb-memory-format-binary #[nil "\300\301\302\"\210\303 \207" [customize-set-variable gdb-memory-format "t" gdb-invalidate-memory] 3 (#$ . 80291) nil]) #@34 Set the display format to octal. (defalias 'gdb-memory-format-octal #[nil "\300\301\302\"\210\303 \207" [customize-set-variable gdb-memory-format "o" gdb-invalidate-memory] 3 (#$ . 80493) nil]) #@45 Set the display format to unsigned decimal. (defalias 'gdb-memory-format-unsigned #[nil "\300\301\302\"\210\303 \207" [customize-set-variable gdb-memory-format "u" gdb-invalidate-memory] 3 (#$ . 80693) nil]) #@36 Set the display format to decimal. (defalias 'gdb-memory-format-signed #[nil "\300\301\302\"\210\303 \207" [customize-set-variable gdb-memory-format "d" gdb-invalidate-memory] 3 (#$ . 80907) nil]) #@40 Set the display format to hexadecimal. (defalias 'gdb-memory-format-hexadecimal #[nil "\300\301\302\"\210\303 \207" [customize-set-variable gdb-memory-format "x" gdb-invalidate-memory] 3 (#$ . 81110) nil]) #@45 Keymap to select format in the header line. (defvar gdb-memory-format-map (byte-code "\301 \302\303\304#\210)\207" [map make-sparse-keymap define-key [header-line down-mouse-3] gdb-memory-format-menu-1] 4) (#$ . 81322)) #@45 Menu of display formats in the header line. (defvar gdb-memory-format-menu (make-sparse-keymap "Format") (#$ . 81551)) (byte-code "\301\302\303#\210\301\304\305#\210\301\306\307#\210\301\310\311#\210\301\312\313#\207" [gdb-memory-format-menu define-key [binary] (menu-item "Binary" gdb-memory-format-binary :button (:radio equal gdb-memory-format "t")) [octal] (menu-item "Octal" gdb-memory-format-octal :button (:radio equal gdb-memory-format "o")) [unsigned] (menu-item "Unsigned Decimal" gdb-memory-format-unsigned :button (:radio equal gdb-memory-format "u")) [signed] (menu-item "Signed Decimal" gdb-memory-format-signed :button (:radio equal gdb-memory-format "d")) [hexadecimal] (menu-item "Hexadecimal" gdb-memory-format-hexadecimal :button (:radio equal gdb-memory-format "x"))] 4) (defalias 'gdb-memory-format-menu #[(event) "\302 \"\207" [event gdb-memory-format-menu x-popup-menu] 3 nil "@e"]) (defalias 'gdb-memory-format-menu-1 #[(event) "\306 \307\310\311 \"r\312\216\313\n\211:\203\314\n8\202 \306 `\315\316F)\316 8)!\210\305\n!\211\2057\317 \320\f@!\"\211\205A\321!.\207" [save-selected-window-alist save-selected-window-window event position selection gdb-memory-format-menu selected-window mapcar #[(frame) "\301!D\207" [frame frame-selected-window] 3] frame-list ((byte-code "\305\211\203/\n@\306 @!\203(\307 \211A@)!\203(\310 @ \211A@)\"\210\nA\211\204*\307\f!\203:\311\f!\210\305\207" [save-selected-window-alist elt #1=#:--cl-dolist-temp-- x save-selected-window-window nil frame-live-p window-live-p set-frame-selected-window select-window] 4)) select-window 1 (0 . 0) 0 lookup-key vector call-interactively binding] 6 nil "e"]) #@49 Set the unit size to giant words (eight bytes). (defalias 'gdb-memory-unit-giant #[nil "\300\301\302\"\210\303 \207" [customize-set-variable gdb-memory-unit "g" gdb-invalidate-memory] 3 (#$ . 83246) nil]) #@42 Set the unit size to words (four bytes). (defalias 'gdb-memory-unit-word #[nil "\300\301\302\"\210\303 \207" [customize-set-variable gdb-memory-unit "w" gdb-invalidate-memory] 3 (#$ . 83457) nil]) #@45 Set the unit size to halfwords (two bytes). (defalias 'gdb-memory-unit-halfword #[nil "\300\301\302\"\210\303 \207" [customize-set-variable gdb-memory-unit "h" gdb-invalidate-memory] 3 (#$ . 83660) nil]) #@29 Set the unit size to bytes. (defalias 'gdb-memory-unit-byte #[nil "\300\301\302\"\210\303 \207" [customize-set-variable gdb-memory-unit "b" gdb-invalidate-memory] 3 (#$ . 83870) nil]) #@44 Keymap to select units in the header line. (defvar gdb-memory-unit-map (byte-code "\301 \302\303\304#\210)\207" [map make-sparse-keymap define-key [header-line down-mouse-3] gdb-memory-unit-menu-1] 4) (#$ . 84060)) #@35 Menu of units in the header line. (defvar gdb-memory-unit-menu (make-sparse-keymap "Unit") (#$ . 84284)) (byte-code "\301\302\303#\210\301\304\305#\210\301\306\307#\210\301\310\311#\207" [gdb-memory-unit-menu define-key [giantwords] (menu-item "Giant words" gdb-memory-unit-giant :button (:radio equal gdb-memory-unit "g")) [words] (menu-item "Words" gdb-memory-unit-word :button (:radio equal gdb-memory-unit "w")) [halfwords] (menu-item "Halfwords" gdb-memory-unit-halfword :button (:radio equal gdb-memory-unit "h")) [bytes] (menu-item "Bytes" gdb-memory-unit-byte :button (:radio equal gdb-memory-unit "b"))] 4) (defalias 'gdb-memory-unit-menu #[(event) "\302 \"\207" [event gdb-memory-unit-menu x-popup-menu] 3 nil "@e"]) (defalias 'gdb-memory-unit-menu-1 #[(event) "\306 \307\310\311 \"r\312\216\313\n\211:\203\314\n8\202 \306 `\315\316F)\316 8)!\210\305\n!\211\2057\317 \320\f@!\"\211\205A\321!.\207" [save-selected-window-alist save-selected-window-window event position selection gdb-memory-unit-menu selected-window mapcar #[(frame) "\301!D\207" [frame frame-selected-window] 3] frame-list ((byte-code "\305\211\203/\n@\306 @!\203(\307 \211A@)!\203(\310 @ \211A@)\"\210\nA\211\204*\307\f!\203:\311\f!\210\305\207" [save-selected-window-alist elt #1=#:--cl-dolist-temp-- x save-selected-window-window nil frame-live-p window-live-p set-frame-selected-window select-window] 4)) select-window 1 (0 . 0) 0 lookup-key vector call-interactively binding] 6 nil "e"]) #@184 Return a keymap with single entry for mouse key MOUSE on the header line. MOUSE is defined to run function FUNCTION with no args in the buffer corresponding to the mode line clicked. (defalias 'gdb-make-header-line-mouse-map #[(mouse function) "\303 \304\305\306 \"\n#\210\304\305\306\307\"\310#\210)\207" [map mouse function make-sparse-keymap define-key vector header-line down-mouse-1 ignore] 5 (#$ . 85796)]) #@47 Font lock keywords used in `gdb-memory-mode'. (defvar gdb-memory-font-lock-keywords '(("<\\(\\(\\sw\\|[_.]\\)+\\)\\(\\+[0-9]+\\)?>" (1 font-lock-function-name-face))) (#$ . 86219)) #@58 Major mode for examining memory. \{gdb-memory-mode-map} (defalias 'gdb-memory-mode #[nil "\306 \210\307\310\311\312 !\210\313\314\305!\210\315\316\317!\210\320\207" [major-mode mode-name buffer-read-only gdb-memory-mode-map header-line-format font-lock-defaults kill-all-local-variables gdb-memory-mode "Memory" t use-local-map (:eval (concat "Read address[" (propertize "-" 'face font-lock-warning-face 'help-echo "mouse-1: decrement address" 'mouse-face 'mode-line-highlight 'local-map (gdb-make-header-line-mouse-map 'mouse-1 (lambda nil (interactive) (let ((gdb-memory-address (concat gdb-memory-address " - " (number-to-string (* gdb-memory-repeat-count (cond ((string= gdb-memory-unit "b") 1) ((string= gdb-memory-unit "h") 2) ((string= gdb-memory-unit "w") 4) ((string= gdb-memory-unit "g") 8))))))) (gdb-invalidate-memory))))) "|" (propertize "+" 'face font-lock-warning-face 'help-echo "mouse-1: increment address" 'mouse-face 'mode-line-highlight 'local-map (gdb-make-header-line-mouse-map 'mouse-1 (lambda nil (interactive) (let ((gdb-memory-address nil)) (gdb-invalidate-memory))))) "]: " (propertize gdb-memory-address 'face font-lock-warning-face 'help-echo "mouse-1: set memory address" 'mouse-face 'mode-line-highlight 'local-map (gdb-make-header-line-mouse-map 'mouse-1 #'gdb-memory-set-address)) " Repeat Count: " (propertize (number-to-string gdb-memory-repeat-count) 'face font-lock-warning-face 'help-echo "mouse-1: set repeat count" 'mouse-face 'mode-line-highlight 'local-map (gdb-make-header-line-mouse-map 'mouse-1 #'gdb-memory-set-repeat-count)) " Display Format: " (propertize gdb-memory-format 'face font-lock-warning-face 'help-echo "mouse-3: select display format" 'mouse-face 'mode-line-highlight 'local-map gdb-memory-format-map) " Unit Size: " (propertize gdb-memory-unit 'face font-lock-warning-face 'help-echo "mouse-3: select unit size" 'mouse-face 'mode-line-highlight 'local-map gdb-memory-unit-map))) make-local-variable (gdb-memory-font-lock-keywords) run-mode-hooks gdb-memory-mode-hook gdb-invalidate-memory] 2 (#$ . 86406)]) (defalias 'gdb-memory-buffer-name #[nil "rq\210\301\302 \303Q)\207" [gud-comint-buffer "*memory of " gdb-get-target-string "*"] 3]) #@26 Display memory contents. (defalias 'gdb-display-memory-buffer #[nil "\300\301\302!\303\"\207" [gdb-display-buffer gdb-get-buffer-create gdb-memory-buffer t] 3 (#$ . 88622) nil]) #@41 Display memory contents in a new frame. (defalias 'gdb-frame-memory-buffer #[nil "\303\304\"\305\306\307 BBB\310\311\312!!*\207" [special-display-regexps gdb-frame-parameters special-display-frame-alist append (".*") (left-fringe . 0) (right-fringe . 0) (width . 83) display-buffer gdb-get-buffer-create gdb-memory-buffer] 4 (#$ . 88806) nil]) (gdb-set-buffer-rules 'gdb-locals-buffer 'gdb-locals-buffer-name 'gdb-locals-mode) (defalias 'gdb-invalidate-locals #[(&optional ignored) "\301\302!\205\303\235?\205\304\305\306D!\210\303B\211\207" [gdb-pending-triggers gdb-get-buffer gdb-locals-buffer gdb-invalidate-locals gdb-enqueue-input "server info locals\n" gdb-info-locals-handler] 3]) #@74 Keymap to create watch expression of a complex data type local variable. (defvar gdb-locals-watch-map (byte-code "\301 \302!\210\303\304\305#\210\303\306\307#\210)\207" [map make-sparse-keymap suppress-keymap define-key " " #[nil "\300 \210\301 \207" [beginning-of-line gud-watch] 1 nil nil] [mouse-2] #[(event) "\301!\210\302 \210\303 \207" [event mouse-set-point beginning-of-line gud-watch] 2 nil "e"]] 4) (#$ . 89511)) (byte-code "\302B\303\304\305\306\307\310\311\312 &\313P!\210\314B\315\316\304\317\306\307\310\311\312 &\313Q!\207" [current-load-list gdb-locals-watch-map gdb-struct-string (lambda (#1=#:defconst-tmp-var) (defconst gdb-struct-string #1#)) propertize "[struct/union]" mouse-face highlight help-echo "mouse-2: create watch expression" local-map "\n" gdb-array-string (lambda (#2=#:defconst-tmp-var) (defconst gdb-array-string #2#)) " " "[array]"] 10) (defalias 'gdb-info-locals-handler #[nil "\306\307\"\310\311!r q\210eb\210\312\313\314\315#\203!\316\317\314\211#\210\202eb\210\312\320\314\315#\2035\316\n\314\211#\210\202$eb\210\312\321\314\315#\203I\316 \314\211#\210\2028*\310\322!\211\203|r q\210\323 \324\"\325\f!\326\f!\314\327 \210\330\331\311!!\210\332\f \"\210\333\f\"\210-)\334\335!\207" [gdb-pending-triggers buf gdb-struct-string gdb-array-string window start delq gdb-invalidate-locals gdb-get-buffer gdb-partial-output-buffer re-search-forward "^[ }].*\n" nil t replace-match "" "{\\(.*=.*\n\\|\n\\)" "\\s-*{.*\n" gdb-locals-buffer get-buffer-window 0 window-start window-point erase-buffer insert-buffer-substring gdb-get-buffer-create set-window-start set-window-point run-hooks gdb-info-locals-hook p buffer-read-only] 5]) (byte-code "\302B\303\302!\204\304\302\305 \306 !\210\307 \310\311#\210 )\"\210\302\207" [current-load-list map gdb-locals-mode-map default-boundp set-default make-sparse-keymap suppress-keymap define-key "q" kill-this-buffer] 6) #@52 Major mode for gdb locals. \{gdb-locals-mode-map} (defalias 'gdb-locals-mode #[nil "\306 \210\307\310 P\311\312\f!\210\313\305!\210\314\315\316!\210\317\320\"\321=\203,\322\230\203,\323\207\324\207" [major-mode gdb-selected-frame mode-name buffer-read-only gdb-locals-mode-map font-lock-defaults kill-all-local-variables gdb-locals-mode "Locals:" t use-local-map make-local-variable (gdb-locals-font-lock-keywords) run-mode-hooks gdb-locals-mode-hook buffer-local-value gud-minor-mode gdba "pre-6.4" gdb-invalidate-locals gdb-invalidate-locals-1 gud-comint-buffer gdb-version] 3 (#$ . 91447)]) (defalias 'gdb-locals-buffer-name #[nil "rq\210\301\302 \303Q)\207" [gud-comint-buffer "*locals of " gdb-get-target-string "*"] 3]) #@60 Display local variables of current stack and their values. (defalias 'gdb-display-locals-buffer #[nil "\300\301\302!\303\"\207" [gdb-display-buffer gdb-get-buffer-create gdb-locals-buffer t] 3 (#$ . 92191) nil]) #@75 Display local variables of current stack and their values in a new frame. (defalias 'gdb-frame-locals-buffer #[nil "\303\304\" \305\306\307!!*\207" [special-display-regexps gdb-frame-parameters special-display-frame-alist append (".*") display-buffer gdb-get-buffer-create gdb-locals-buffer] 3 (#$ . 92409) nil]) (defalias 'gdb-display-buffer #[(buf dedicated &optional size) "\306\307\"\310\211\203\311\310\307#\202k\312 !\210\313 \211\2032\f\306 ! D>\2042\314\f\"\210\f\2024\315) \203j\316 \317!\205UW\205UZ\320\"\314\n\"\210\321\n\"\210+\n*\207" [buf must-split answer gud-comint-buffer window gdb-source-window get-buffer-window 0 nil display-buffer pop-to-buffer get-lru-window set-window-buffer t get-largest-window window-height split-window set-window-dedicated-p largest cur-size size new-size dedicated] 5]) (byte-code "\302\303!\304 \305\306\303\307BBB#\210\304\310\311#\210\304\312\313#\210\304\314\315#\210\304\316\317#\210\304\320\321#\210\304\322\323#\210\304\324\325#\210\304\326\327#\210\304\330\331#\210)\302\332!\304 \333\306\332\334BBB#\210\304\335\336#\210\304\337\340#\210\304\341\342#\210\304\343\344#\210\304\345\346#\210\304\347\350#\210\304\351\352#\210\304\353\354#\210\304\355\356#\210)\302\357!\304 \360\306\361\362BBB#\210\304\363\364#\210\304\365\366#\210\304\367\370#\210\304\371\372#\210)\302\207" [menu gud-menu-map make-sparse-keymap "GDB-Windows" define-key [displays] menu-item (:visible (memq gud-minor-mode '(gdbmi gdba))) [gdb] ("Gdb" . gdb-display-gdb-buffer) [threads] ("Threads" . gdb-display-threads-buffer) [inferior] (menu-item "Separate IO" gdb-display-separate-io-buffer :enable gdb-use-separate-io-buffer) [memory] ("Memory" . gdb-display-memory-buffer) [registers] ("Registers" . gdb-display-registers-buffer) [disassembly] ("Disassembly" . gdb-display-assembler-buffer) [breakpoints] ("Breakpoints" . gdb-display-breakpoints-buffer) [locals] ("Locals" . gdb-display-locals-buffer) [frames] ("Stack" . gdb-display-stack-buffer) "GDB-Frames" [frames] (:visible (memq gud-minor-mode '(gdbmi gdba))) [gdb] ("Gdb" . gdb-frame-gdb-buffer) [threads] ("Threads" . gdb-frame-threads-buffer) [memory] ("Memory" . gdb-frame-memory-buffer) [inferior] (menu-item "Separate IO" gdb-frame-separate-io-buffer :enable gdb-use-separate-io-buffer) [registers] ("Registers" . gdb-frame-registers-buffer) [disassembly] ("Disassembly" . gdb-frame-assembler-buffer) [breakpoints] ("Breakpoints" . gdb-frame-breakpoints-buffer) [locals] ("Locals" . gdb-frame-locals-buffer) [frames] ("Stack" . gdb-frame-stack-buffer) "GDB-UI/MI" [ui] (if (eq gud-minor-mode 'gdba) "GDB-UI" "GDB-MI") (:visible (memq gud-minor-mode '(gdbmi gdba))) [gdb-find-source-frame] (menu-item "Look For Source Frame" gdb-find-source-frame :visible (eq gud-minor-mode 'gdba) :help "Toggle look for source frame." :button (:toggle . gdb-find-source-frame)) [gdb-use-separate-io] (menu-item "Separate IO" gdb-use-separate-io-buffer :visible (eq gud-minor-mode 'gdba) :help "Toggle separate IO for debugged program." :button (:toggle . gdb-use-separate-io-buffer)) [gdb-many-windows] (menu-item "Display Other Windows" gdb-many-windows :help "Toggle display of locals, stack and breakpoint information" :button (:toggle . gdb-many-windows)) [gdb-restore-windows] (menu-item "Restore Window Layout" gdb-restore-windows :help "Restore standard layout for debug session.")] 7) #@36 Display GUD buffer in a new frame. (defalias 'gdb-frame-gdb-buffer #[nil "\305\306\"\307\310\307\311 \"\"\312\313\f!+\207" [special-display-regexps gdb-frame-parameters same-window-regexps special-display-frame-alist gud-comint-buffer append (".*") remove (menu-bar-lines) (tool-bar-lines) nil display-buffer] 6 (#$ . 95859) nil]) #@21 Display GUD buffer. (defalias 'gdb-display-gdb-buffer #[nil "\302\303 !)\207" [same-window-regexps gud-comint-buffer nil pop-to-buffer] 2 (#$ . 96200) nil]) (defalias 'gdb-set-window-buffer #[(name) "\301\302 \303!\"\210\304\302 \305\"\207" [name set-window-buffer selected-window get-buffer set-window-dedicated-p t] 4]) #@51 Layout the window pattern for `gdb-many-windows'. (defalias 'gdb-setup-windows #[nil "\305 \210\306 \210\307 \210\310 \210\307 \210\311!\210\312\313\314 \315_\316\245\"\210\312\313\314 \315\245\"\210\317 \210\320\321!\210\322\323 !\210\320\321!\210\324 \203A\325 @!\202M\n\203K\325\n!\202M\326 !\210\327 \f\203c\317 \210\320\321!\210\322\330\331!!\210\320\321!\210\322\332 !\210\317 \210\320\321!\210\322\333 !\210\320\321!\207" [gud-comint-buffer gud-last-last-frame gdb-main-file gdb-source-window gdb-use-separate-io-buffer gdb-display-locals-buffer gdb-display-stack-buffer delete-other-windows gdb-display-breakpoints-buffer pop-to-buffer split-window nil window-height 3 4 split-window-horizontally other-window 1 gdb-set-window-buffer gdb-locals-buffer-name switch-to-buffer gud-find-file list-buffers-noselect selected-window gdb-get-buffer-create gdb-inferior-io gdb-stack-buffer-name gdb-breakpoints-buffer-name] 4 (#$ . 96530)]) #@117 Restore the basic arrangement of windows used by gdba. This arrangement depends on the value of `gdb-many-windows'. (defalias 'gdb-restore-windows #[nil "\306!\210\307 \210 \203\310 \207\n\204 \2054\311 \210\312\313!\210\314\n\203)\315\n@!\202,\315\f!!\210\316 \312\313!\207" [gud-comint-buffer gdb-many-windows gud-last-last-frame gdb-show-main gdb-main-file gdb-source-window pop-to-buffer delete-other-windows gdb-setup-windows split-window other-window 1 switch-to-buffer gud-find-file selected-window] 3 (#$ . 97484) nil]) #@103 Exit a debugging session cleanly. Kills the gdb buffers, and resets variables and the source buffers. (defalias 'gdb-reset #[nil "\306 \307\211\203C @\211\n=\204<rq\210 \310>\203;\311\312\313 \"\203+\314\307!\210\202;\315ed\316#\210\307\317\320!\210\317\321!\210) A\211\204 *\307\322\304 \"\323\307\322\324 \"\325\326!\203_\327 \210\307\211\307\330\331\332\316#\207" [buffer #1=#:--cl-dolist-temp-- gud-comint-buffer gud-minor-mode gdb-overlay-arrow-position overlay-arrow-variable-list buffer-list nil (gdbmi gdba) string-match "\\` ?\\*.+\\*\\'" buffer-name kill-buffer gdb-remove-breakpoint-icons t kill-local-variable tool-bar-map gdb-define-alist delq ((overlay-arrow . right-triangle)) gdb-stack-position boundp speedbar-frame speedbar-timer-fn remove-hook after-save-hook gdb-create-define-alist fringe-indicator-alist gud-running gdb-active-process gdb-var-list] 6 (#$ . 98028)]) #@85 Find the source file where the program starts and displays it with related buffers. (defalias 'gdb-source-info #[nil "eb\210\305\306\307\310#\203\311\312!\203\313\314!eb\210\305\315\307\310#\203\"\310\n\203)\316 \207\317\320!\210 \2059\310\321\322!!)\207" [gdb-main-file gdb-macro-info gdb-many-windows gdb-show-main pop-up-windows search-forward "Located in " nil t looking-at "\\S-+" match-string 0 "Includes preprocessor macro info." gdb-setup-windows gdb-get-buffer-create gdb-breakpoints-buffer display-buffer gud-find-file] 4 (#$ . 98948)]) #@98 Find the directory containing the relevant source file. Put in buffer and place breakpoint icon. (defalias 'gdb-get-location #[(bptno line flag) "eb\210\300\301\215\207" [file-not-found (byte-code "\306\307\310\311#\203 \312\313!\2039\314\315B \"\210\316\317!B B\2029\320 \210\321 \"\2044\315B B\322\323!\210\324\325\310\"\210r\326\316\317!!q\210r\327\302!\210\330\327\304!\210 )\212\331\332 !!\210\333\334=\"*\207" [bptno gdb-location-alist gud-minor-mode gud-tool-bar-map tool-bar-map line search-forward "Located in " nil t looking-at "\\S-+" delete "File not found" match-string 0 gdb-resync assoc message-box "Cannot find source file for breakpoint location.\nAdd directory to search path for source files using the GDB command, dir." throw file-not-found find-file-noselect make-local-variable gdba goto-line string-to-number gdb-put-breakpoint-icon 121 flag] 4)] 2 (#$ . 99512)]) (add-hook 'find-file-hook 'gdb-find-file-hook) #@88 Set up buffer for debugging if file is part of the source code of the current session. (defalias 'gdb-find-file-hook #[nil "\306!\205=\205=\307\304\"\310>\205= \311\230\203\312\n!\202 \n \235\205=r\313\n!q\210\314\304!\210\307\304\"\314\315!\210 \211 )\207" [gud-comint-buffer gdb-version buffer-file-name gdb-source-file-list gud-minor-mode gud-tool-bar-map buffer-name buffer-local-value (gdba gdbmi) "pre-6.4" file-name-nondirectory find-buffer-visiting make-local-variable tool-bar-map] 3 (#$ . 100467)]) #@216 Put string PUTSTRING in front of POS in the current buffer. PUTSTRING is displayed by putting an overlay into the current buffer with a `before-string' string that has a `display' property whose value is PUTSTRING. (defalias 'gdb-put-string #[(putstring pos &optional dprop &rest sprops) "\306\307\310\"p\311\n!\312 \211#\f\206\313\314D\nD\315\316\307\317 %\210\2031\320\316\307 $\210\321\322\323#\210\321\324 #,\207" [buffer string putstring pos dprop prop make-string 1 120 copy-sequence make-overlay margin left-margin put-text-property 0 display add-text-properties overlay-put put-break t before-string overlay sprops] 6 (#$ . 100996)]) #@177 Remove strings between START and END in BUFFER. Remove only strings that were put in BUFFER with calls to `gdb-put-string'. BUFFER nil or omitted means use the current buffer. (defalias 'gdb-remove-strings #[(start end &optional buffer) "\204p\305 \n\"\306\211\203&\f@\307 \310\"\203\311 !\210\fA\211\204*\306\207" [buffer start end overlay #1=#:--cl-dolist-temp-- overlays-in nil overlay-get put-break delete-overlay] 4 (#$ . 101664)]) (defalias 'gdb-put-breakpoint-icon #[(enabled bptno) "\306 S\307 T\203\310\202\311\312p\313\"\314\313\315\316\n$\210\2030\314\313\315\317 \320BB\n$\210\202;\314\313\315\317 \321BB\n$\210\322\f \"\210\323 \203\333,\206W \203U\324 !@\206W-\325Y\203u\326\327\fT\330\331\203j\332\202k\333E\317 \334&\202 .\335W\203\215r\335. \203\214\336 ./#\210)\337\203\2640\206\323\340\341\342\3431\344BBBB\341\345\3432\346BBBBD!\2110\202\3233\206\323\340\341\342\3431\347BBBB\341\345\3434\350BBBBD!\2113\fT\n\351$\202 .\335W\203\372r\335.\312p\313\"\2115\203\371\3365./#\210*\326\352\n\353\203\332\202\333#\fT\",\207" [enabled source-window putstring end start bptno line-beginning-position line-end-position "B" "b" get-buffer-window 0 add-text-properties 1 (help-echo "mouse-1: clear bkpt, mouse-3: enable/disable bkpt") gdb-bptno (gdb-enabled t) (gdb-enabled nil) gdb-remove-breakpoint-icons display-images-p window-fringes 8 gdb-put-string nil left-fringe breakpoint breakpoint-enabled breakpoint-disabled gdb-enabled 2 set-window-margins put-image find-image :type xpm :data (:ascent 100 :pointer hand) pbm (:ascent 100 :pointer hand) (:conversion disabled :ascent 100 :pointer hand) (:ascent 100 :pointer hand) left-margin propertize face left-fringe-width gdb-buffer-fringe-width left-margin-width right-margin-width breakpoint-enabled-icon breakpoint-xpm-data breakpoint-enabled-pbm-data breakpoint-disabled-icon breakpoint-disabled-pbm-data window] 9]) (defalias 'gdb-remove-breakpoint-icons #[(start end &optional remove-margin) "\306 \"\210\307 \203\310 \"\210\n\205$\311\312p\311\"\211\205#\313\f #)\207" [start end remove-margin left-margin-width window right-margin-width gdb-remove-strings display-images-p remove-images 0 get-buffer-window set-window-margins] 5]) (gdb-set-buffer-rules 'gdb-assembler-buffer 'gdb-assembler-buffer-name 'gdb-assembler-mode) (defalias 'gdb-assembler-handler #[nil "\305\306\"\307\310!\211\203+r q\210\311 \312\"\313\n!\314\315 \210\316\317\320!!\210\321\n \"\210,)\322 \207" [gdb-pending-triggers buf window p buffer-read-only delq gdb-invalidate-assembler gdb-get-buffer gdb-assembler-buffer get-buffer-window 0 window-point nil erase-buffer insert-buffer-substring gdb-get-buffer-create gdb-partial-output-buffer set-window-point gdb-assembler-custom] 4]) (defalias 'gdb-assembler-custom #[nil "\306\307!\310\311\211\211r\fq\210\212 \312\232\204Eeb\210 \203E\313 \311\314#\203E`\315 \210\316\230?\2054\317 \204?\320   `\311\223\210\321ed\"\210*r\306\322!q\210eb\210`dSW\203\217\310y\210\323\324!\203T\323\325!\210\326\310!\327\224f\326\330!r\fq\210\212eb\210\313\n\311\314#\203\213\331 \332=\"\210*\202T) \312\232?\205\243r\fq\210\333\334\f\335\" \")-\207" [bptno flag address pos buffer gdb-pc-address gdb-get-buffer gdb-assembler-buffer 1 nil "main" search-forward t beginning-of-line "0" ((overlay-arrow . hollow-right-triangle)) make-marker gdb-remove-breakpoint-icons gdb-breakpoints-buffer looking-at "[^ ].*?breakpoint" "\\([0-9]+\\)\\s-+\\S-+\\s-+\\S-+\\s-+\\(.\\)\\s-+0x0*\\(\\S-+\\)" match-string 2 3 gdb-put-breakpoint-icon 121 set-window-point get-buffer-window 0 gdb-frame-number fringe-indicator-alist gdb-overlay-arrow-position] 5]) (byte-code "\302B\303\302!\204\304\302\305 \306 !\210\307 \310\311#\210 )\"\210\302\207" [current-load-list map gdb-assembler-mode-map default-boundp set-default make-sparse-keymap suppress-keymap define-key "q" kill-this-buffer] 6) #@50 Font lock keywords used in `gdb-assembler-mode'. (defvar gdb-assembler-font-lock-keywords '(("<\\(\\(\\sw\\|[_.]\\)+\\)\\(\\+[0-9]+\\)?>" (1 font-lock-function-name-face)) ("^0x[0-9a-f]+ \\(<\\(\\(\\sw\\|[_.]\\)+\\)\\+[0-9]+>\\)?:[ ]+\\(\\sw+\\)" (4 font-lock-keyword-face)) ("%\\sw+" . font-lock-variable-name-face) ("^\\(Dump of assembler code for function\\) \\(.+\\):" (1 font-lock-comment-face) (2 font-lock-function-name-face)) ("^\\(End of assembler dump\\.\\)" . font-lock-comment-face)) (#$ . 105639)) #@67 Major mode for viewing code assembler. \{gdb-assembler-mode-map} (defalias 'gdb-assembler-mode #[nil "\306 \210\307\310 P\311\312\313\303\"\210\314\211\315!\210\316 \210\317\320!\210\321\322\323!\210\316\207" [major-mode gdb-selected-frame mode-name gdb-overlay-arrow-position fringes-outside-margins buffer-read-only kill-all-local-variables gdb-assembler-mode "Machine:" nil add-to-list overlay-arrow-variable-list t use-local-map gdb-invalidate-assembler make-local-variable font-lock-defaults (gdb-assembler-font-lock-keywords) run-mode-hooks gdb-assembler-mode-hook gdb-assembler-mode-map] 4 (#$ . 106157)]) (defalias 'gdb-assembler-buffer-name #[nil "rq\210\301\302 \303Q)\207" [gud-comint-buffer "*disassembly of " gdb-get-target-string "*"] 3]) #@27 Display disassembly view. (defalias 'gdb-display-assembler-buffer #[nil "\301\302\303\304!\305\"\207" [gdb-previous-frame nil gdb-display-buffer gdb-get-buffer-create gdb-assembler-buffer t] 3 (#$ . 106927) nil]) #@42 Display disassembly view in a new frame. (defalias 'gdb-frame-assembler-buffer #[nil "\304\305 \306\"\n\307\310\311!!*\207" [gdb-previous-frame special-display-regexps gdb-frame-parameters special-display-frame-alist nil append (".*") display-buffer gdb-get-buffer-create gdb-assembler-buffer] 3 (#$ . 107147) nil]) (defalias 'gdb-invalidate-assembler #[(&optional ignored) "\306\307!\205k\205  \230?\205k\310\n\235\203 \f\230?\205kr q\210\211\311\211\203M@\211A\312\232\203D\313\"A\211\2040,\314\315 \316\235?\205Z\317 \320\260\321D!\210\310\nB \211\207" [gdb-selected-frame gdb-previous-frame gdb-pending-triggers gdb-pc-address gdb-previous-frame-address gud-comint-buffer gdb-get-buffer gdb-assembler-buffer gdb-invalidate-assembler nil (gdb-assembler-handler) delete gdb-enqueue-input "disassemble " (nil "main") "0x" "\n" gdb-assembler-handler gdb-input-queue queue item #1=#:--cl-dolist-temp-- gdb-server-prefix] 7]) (defalias 'gdb-get-selected-frame #[nil "\302\235?\205\303 \304P\305D!\210\302B\211\207" [gdb-pending-triggers gdb-server-prefix gdb-get-selected-frame gdb-enqueue-input "info frame\n" gdb-frame-handler] 3]) (defalias 'gdb-frame-handler #[nil "\306\307\"eb\210\310\311\312\313#\203\314\315!\314\316!eb\210\310\317\312\313#\203\215\314\316!\320\321!\2038r\320\321!q\210\322 P)\320\323!\203Ir\320\323!q\210\324 P)\314\315!\314\325!\203\215\203\215\326!\327!\211 \203\214\330 !\331\314\325!!\230\203\214r q\210 \332\230?\205\202\333!\312\223\210)*eb\210\310\334\312\313#\203\235\314\315!\"\335 \207" [gdb-pending-triggers gdb-frame-number gdb-frame-address gdb-selected-frame mode-name gdb-pc-address delq gdb-get-selected-frame re-search-forward "Stack level \\([0-9]+\\), frame at \\(0x[[:xdigit:]]+\\)" nil t match-string 1 2 ".*=\\s-+0x0*\\(\\S-*\\)\\s-+in\\s-+\\(.*?\\)\\(?: (\\(\\S-+?\\):[0-9]+?)\\)*; " gdb-get-buffer gdb-locals-buffer "Locals:" gdb-assembler-buffer "Machine:" 3 marker-buffer marker-position buffer-name file-name-nondirectory "0" ((overlay-arrow . hollow-right-triangle)) " source language \\(\\S-+\\)." gdb-invalidate-assembler gud-overlay-arrow-position position buffer fringe-indicator-alist gdb-current-language] 5]) (byte-code "\301B\302\303!\207" [current-load-list gdb-source-file-regexp-1 (lambda (#1=#:defconst-tmp-var) (defconst gdb-source-file-regexp-1 #1#)) "fullname=\"\\(.*?\\)\""] 2) #@134 Create list of source files for current GDB session. If buffers already exist for any of these files, gud-minor-mode is set in them. (defalias 'gdb-set-gud-minor-mode-existing-buffers-1 #[nil "eb\210\306\307\310#\203\311\312! B\202\313 \307\211\203W @r\nq\210\f \235\203O\314\315!\210\316\315 \" \314\317!\210\203O\314\320!\210\321 \210\322\323\321\307\310$\210) A\211\204*\324\325\326\327#!\207" [gdb-source-file-regexp-1 gdb-source-file-list buffer #1=#:--cl-dolist-temp-- buffer-file-name gud-comint-buffer re-search-forward nil t match-string 1 buffer-list make-local-variable gud-minor-mode buffer-local-value tool-bar-map gdb-define-alist gdb-create-define-alist add-hook after-save-hook gdb-force-mode-line-update propertize "ready" face gud-tool-bar-map gud-tooltip-mode font-lock-variable-name-face] 6 (#$ . 109587)]) (defalias 'gdb-var-list-children-1 #[(varnum) "\302\303\304\"\305=\203\306 \307Q\202\310 \311Q\312\313\314 DED!\207" [gud-comint-buffer varnum gdb-enqueue-input buffer-local-value gud-minor-mode gdba "server interpreter mi \"-var-list-children --all-values " "\"\n" "-var-list-children --all-values " "\n" lambda nil gdb-var-list-children-handler-1] 6]) (byte-code "\301B\302\303!\207" [current-load-list gdb-var-list-children-regexp-1 (lambda (#1=#:defconst-tmp-var) (defconst gdb-var-list-children-regexp-1 #1#)) "child={.*?name=\"\\(.+?\\)\",.*?exp=\"\\(.+?\\)\",.*?numchild=\"\\(.+?\\)\",.*?value=\\(\".*?\"\\)\\(}\\|,.*?\\(type=\"\\(.+?\\)\"\\)?.*?}\\)"] 2) (defalias 'gdb-var-list-children-handler-1 #[(varnum) "eb\210\301\302\303\215\210)\304 \207" [var-list nil child-already-watched (byte-code "\306\211\203V\n@ @\230\203K \fB\307 \306\310#\203O\311\312!\311\313!\311\314!\311\315!\316\311\317!!\306\257\320@\"\203B\321\322\306\"\210\fB)\202 \fB\nA\211\204*\f\237\306\207" [gdb-var-list var #1=#:--cl-dolist-temp-- varnum var-list gdb-var-list-children-regexp-1 nil re-search-forward t match-string 1 2 3 7 read 4 assoc throw child-already-watched varchild] 8) gdb-speedbar-update] 2]) (defalias 'gdb-var-update-1 #[nil "\302\235?\205\303\304\305 \"\306=\203\307\202\310\311D!\210\302B\211\207" [gdb-pending-triggers gud-comint-buffer gdb-var-update gdb-enqueue-input buffer-local-value gud-minor-mode gdba "server interpreter mi \"-var-update --all-values *\"\n" "-var-update --all-values *\n" gdb-var-update-handler-1] 4]) (byte-code "\301B\302\303!\207" [current-load-list gdb-var-update-regexp-1 (lambda (#1=#:defconst-tmp-var) (defconst gdb-var-update-regexp-1 #1#)) "{.*?name=\"\\(.*?\\)\",.*?\\(?:value=\\(\".*?\"\\),\\)?.*?in_scope=\"\\(.*?\\)\".*?}"] 2) (defalias 'gdb-var-update-handler-1 #[nil "\306\211\203\n@\307 \233\306\240\210\nA\211\204*eb\210\310 \306\311#\203l\312\313!\314\f\"\211\203h\312\315!\211\316\230\203D\307 \233\317\240\210\202g \320\230\203]\307 \233\321\240\210\322 \233\323\312\324!!\240\210\202g \325\230\203g\326\f!\210)*\202\327\330\"\331 \207" [gdb-var-list var #1=#:--cl-dolist-temp-- gdb-var-update-regexp-1 varnum match nil 5 re-search-forward t match-string 1 assoc 3 "false" out-of-scope "true" changed 4 read 2 "invalid" gdb-var-delete-1 delq gdb-var-update gdb-speedbar-update gdb-pending-triggers] 5]) (gdb-set-buffer-rules 'gdb-registers-buffer 'gdb-registers-buffer-name 'gdb-registers-mode) (defalias 'gdb-invalidate-registers-1 #[(&optional ignored) "\302\303!\205%\304\235?\205%\305\306\307 \"\310=\203\311\202\312\313D!\210\304B\211\207" [gdb-pending-triggers gud-comint-buffer gdb-get-buffer gdb-registers-buffer gdb-invalidate-registers-1 gdb-enqueue-input buffer-local-value gud-minor-mode gdba "server interpreter mi \"-data-list-register-values x\"\n" "-data-list-register-values x\n" gdb-data-list-register-values-handler] 4]) (byte-code "\301B\302\303!\207" [current-load-list gdb-data-list-register-values-regexp (lambda (#1=#:defconst-tmp-var) (defconst gdb-data-list-register-values-regexp #1#)) "{.*?number=\"\\(.*?\\)\",.*?value=\"\\(.*?\\)\".*?}"] 2) (defalias 'gdb-data-list-register-values-handler #[nil "\306\307\"eb\210\310 \311\312#\2032\313\314!r\315\316!q\210\311\317 \210\320\321\nG\322\f\n%\210\nc\210eb\210+\202\262\323 !\311\211\211 eb\210\310!\311\312#\203| \211A @\211\324\313\325!\326R\313\314!\"\235\203r\320\321G\322\304%\210P\202C\315\316!#r#q\210\327#\321\"$\330$!%\331$!&\311\317 \210c\210\332$%\"\210\333$&\"\210.\n\334 \207" [gdb-pending-triggers gdb-error-regexp err buffer-read-only font-lock-warning-face gdb-register-names delq gdb-invalidate-registers-1 re-search-forward nil t match-string 1 gdb-get-buffer gdb-registers-buffer erase-buffer put-text-property 0 face reverse " " 2 "\n" get-buffer-window window-start window-point set-window-start set-window-point gdb-data-list-register-values-custom register-values register-string register register-list gdb-data-list-register-values-regexp gdb-changed-registers buf window start p] 7]) (defalias 'gdb-data-list-register-values-custom #[nil "r\304\305!q\210\212\306\211\211eb\210`dW\205>\307 \310 \311\312!\2038\313\314!\315\230\2048\316 \314\225\317 $\210\320 \321#\210\322y\210\202-\207" [end start buffer-read-only font-lock-variable-name-face gdb-get-buffer gdb-registers-buffer nil line-beginning-position line-end-position looking-at "^[^ ]+" match-string 0 "No registers." put-text-property face add-text-properties (help-echo "mouse-2: edit value" mouse-face highlight) 1] 5]) (defalias 'gdb-get-changed-registers #[nil "\302\303!\205%\304\235?\205%\305\306\307 \"\310=\203\311\202\312\313D!\210\304B\211\207" [gdb-pending-triggers gud-comint-buffer gdb-get-buffer gdb-registers-buffer gdb-get-changed-registers gdb-enqueue-input buffer-local-value gud-minor-mode gdba "server interpreter mi -data-list-changed-registers\n" "-data-list-changed-registers\n" gdb-get-changed-registers-handler] 4]) (byte-code "\301B\302\303!\207" [current-load-list gdb-data-list-register-names-regexp (lambda (#1=#:defconst-tmp-var) (defconst gdb-data-list-register-names-regexp #1#)) "\"\\(.*?\\)\""] 2) (defalias 'gdb-get-changed-registers-handler #[nil "\303\304\"\305eb\210\306\n\305\307#\205\310\311! B\202\n\207" [gdb-pending-triggers gdb-changed-registers gdb-data-list-register-names-regexp delq gdb-get-changed-registers nil re-search-forward t match-string 1] 4]) (gdb-set-buffer-rules 'gdb-locals-buffer 'gdb-locals-buffer-name 'gdb-locals-mode) (defalias 'gdb-invalidate-locals-1 #[(&optional ignored) "\302\303!\205%\304\235?\205%\305\306\307 \"\310=\203\311\202\312\313D!\210\304B\211\207" [gdb-pending-triggers gud-comint-buffer gdb-get-buffer gdb-locals-buffer gdb-invalidate-locals-1 gdb-enqueue-input buffer-local-value gud-minor-mode gdba "server interpreter mi -\"stack-list-locals --simple-values\"\n" "-stack-list-locals --simple-values\n" gdb-stack-list-locals-handler] 4]) (byte-code "\301B\302\303!\207" [current-load-list gdb-stack-list-locals-regexp (lambda (#1=#:defconst-tmp-var) (defconst gdb-stack-list-locals-regexp #1#)) "{.*?name=\"\\(.*?\\)\",.*?type=\"\\(.*?\\)\""] 2) #@74 Keymap to create watch expression of a complex data type local variable. (defvar gdb-locals-watch-map-1 (byte-code "\301 \302!\210\303\304\305#\210\303\306\305#\210)\207" [map make-sparse-keymap suppress-keymap define-key " " gud-watch [mouse-2]] 4) (#$ . 116760)) #@60 Keymap to edit value of a simple data type local variable. (defvar gdb-edit-locals-map-1 (byte-code "\301 \302!\210\303\304\305#\210\303\306\305#\210)\207" [map make-sparse-keymap suppress-keymap define-key " " gdb-edit-locals-value [mouse-2]] 4) (#$ . 117036)) #@62 Assign a value to a variable displayed in the locals buffer. (defalias 'gdb-edit-locals-value #[(&optional event) "\212\203'\304\211:\203\3058:\203\305\202\3068\202$\307 `\310\311F)!\210\312 \210\313 \314\315\316 \"!\317 \320 \321\n\322\260\323D!+\207" [event var value gdb-server-prefix posn-set-point 2 1 selected-window (0 . 0) 0 beginning-of-line current-word read-string format "New value (%s): " gdb-enqueue-input "set variable " " = " "\n" ignore] 8 (#$ . 117309) (list last-input-event)]) (defalias 'gdb-stack-list-locals-handler #[nil "\306\307\"eb\210\310 \311\312#\203&\313\314!r\315\316!q\210\311\317 \210\nc\210eb+\207\311\211eb\210\310%\311\312#\203W\313\314!\313\320!\311E\321\322!\203O AA\323\313\314!!\240\210 \fB)\202-\315\316!\211&\205\363r&q\210\324&\325\"'\326'!(\327'!)\311\211*\311+\317 \210\f\311\211,\203\343,@\211@*\320 8\211+\203\245\330\331+\"\203\272\332\325*G\333\334\335\336\337-\257*$\210\202\314\332\325+G\333\334\335\340\337.\257+$\210*\341 A@\341+\342\260c\210,A\211,\204\214*\343'(\"\210\344')\".+\207" [gdb-pending-triggers gdb-error-regexp err buffer-read-only locals-list local delq gdb-invalidate-locals-1 re-search-forward nil t match-string 1 gdb-get-buffer gdb-locals-buffer erase-buffer 2 looking-at ",value=\\(\".*\"\\).*?}" read get-buffer-window 0 window-start window-point string-match "^\\0x" add-text-properties mouse-face highlight help-echo "mouse-2: create watch expression" local-map "mouse-2: edit value" " " "\n" set-window-start set-window-point gdb-stack-list-locals-regexp buf window start p name value #1=#:--cl-dolist-temp-- gdb-locals-watch-map-1 gdb-edit-locals-map-1] 11]) #@34 Create a list of register names. (defalias 'gdb-get-register-names #[nil "eb\210\302\303 \302\304#\205\305\306!B\202\207" [gdb-register-names gdb-data-list-register-names-regexp nil re-search-forward t match-string 1] 4 (#$ . 119023)]) (provide 'gdb-ui)