Server IP : 111.118.215.189 / Your IP : 18.117.158.174 Web Server : Apache System : Linux md-in-83.webhostbox.net 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64 User : a1673wkz ( 2475) PHP Version : 8.2.25 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /usr/share/emacs/24.3/lisp/progmodes/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
;ELC ;;; Compiled by mockbuild@buildfarm06-new.corp.cloudlinux.com on Fri Oct 11 10:09:24 2024 ;;; from file /builddir/build/BUILD/emacs-24.3/lisp/progmodes/gdb-mi.el ;;; in Emacs version 24.3.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\300\302!\210\300\303!\207" [require gud json bindat] 2) (defvar gdb-memory-address "main") #@44 Last successfully accessed memory address. (defvar gdb-memory-last-address nil (#$ . 676)) #@56 Address of next memory page for program memory buffer. (defvar gdb-memory-next-page nil (#$ . 773)) #@60 Address of previous memory page for program memory buffer. (defvar gdb-memory-prev-page nil (#$ . 879)) #@350 Main current thread. Invalidation triggers use this variable to query GDB for information on the specified thread by wrapping GDB/MI commands in `gdb-current-context-command'. This variable may be updated implicitly by GDB via `gdb-stopped' or explicitly by `gdb-select-thread'. Only `gdb-setq-thread-number' should be used to change this value. (defvar gdb-thread-number nil (#$ . 990)) #@291 Selected frame level for main current thread. Updated according to the following rules: When a thread is selected or current thread stops, set to "0". When current thread goes running (and possibly exits eventually), set to nil. May be manually changed by user with `gdb-select-frame'. (defvar gdb-frame-number nil (#$ . 1388)) #@41 Identity of frame for watch expression. (defvar gdb-frame-address nil (#$ . 1726)) #@52 Name of selected function for main current thread. (defvar gdb-selected-frame nil (#$ . 1815)) #@48 Name of selected file for main current thread. (defvar gdb-selected-file nil (#$ . 1916)) #@50 Number of selected line for main current thread. (defvar gdb-selected-line nil (#$ . 2012)) #@237 Associative list of threads provided by "-thread-info" MI command. Keys are thread numbers (in strings) and values are structures as returned from -thread-info by `gdb-json-partial-output'. Updated in `gdb-thread-list-handler-custom'. (defvar gdb-threads-list nil (#$ . 2111)) #@122 Number of currently running threads. If nil, no information is available. Updated in `gdb-thread-list-handler-custom'. (defvar gdb-running-threads-count nil (#$ . 2396)) #@77 Number of currently stopped threads. See also `gdb-running-threads-count'. (defvar gdb-stopped-threads-count nil (#$ . 2574)) #@272 Associative list of breakpoints provided by "-break-list" MI command. Keys are breakpoint numbers (in string) and values are structures as returned from "-break-list" by `gdb-json-partial-output' ("body" field is used). Updated in `gdb-breakpoints-list-handler-custom'. (defvar gdb-breakpoints-list nil (#$ . 2708)) (defvar gdb-current-language nil) #@228 List of variables in watch window. Each element has the form (VARNUM EXPRESSION NUMCHILD TYPE VALUE STATUS HAS_MORE FP) where STATUS is nil (`unchanged'), `changed' or `out-of-scope', FP the frame address for root variables. (defvar gdb-var-list nil (#$ . 3066)) #@50 Source file from which program execution begins. (defvar gdb-main-file nil (#$ . 3337)) (defvar gdb-stack-position nil) (defvar gdb-thread-position nil) (defvar gdb-disassembly-position nil) #@93 Alist of breakpoint numbers and full filenames. Only used for files that Emacs can't find. (defvar gdb-location-alist nil (#$ . 3534)) #@79 GUD tooltips display variable values when t, and macro definitions otherwise. (defvar gdb-active-process nil (#$ . 3676)) (defvar gdb-error "Non-nil when GDB is reporting an error.") #@74 Non-nil if GDB knows that the inferior includes preprocessor macro info. (defvar gdb-macro-info nil (#$ . 3865)) #@25 List of register names. (defvar gdb-register-names nil (#$ . 3984)) #@45 List of changed register numbers (strings). (defvar gdb-changed-registers nil (#$ . 4058)) (defvar gdb-buffer-fringe-width nil) (defvar gdb-last-command nil) (defvar gdb-prompt-name nil) (defvar gdb-token-number 0) (defvar gdb-handler-alist nil) (defvar gdb-handler-number nil) #@50 List of source files for the current executable. (defvar gdb-source-file-list nil (#$ . 4342)) (defvar gdb-first-done-or-error t) (defvar gdb-source-window nil) (defvar gdb-inferior-status nil) (defvar gdb-continuation nil) (defvar gdb-supports-non-stop nil) #@129 Message to be shown in GUD console. This variable is updated in `gdb-done-or-error' and returned by `gud-gdbmi-marker-filter'. (defvar gdb-filter-output nil (#$ . 4608)) #@147 Indicates whether current GDB session is using non-stop mode. It is initialized to `gdb-non-stop-setting' at the beginning of every GDB session. (defvar gdb-non-stop nil (#$ . 4786)) #@49 One of the symbols bound in `gdb-buffer-rules'. (defvar gdb-buffer-type nil (#$ . 4976)) (make-variable-buffer-local 'gdb-buffer-type) #@429 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. `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. (defvar gdb-output-sink nil (#$ . 5118)) #@127 A list of trigger functions which have not yet been handled. Elements are either function names or pairs (buffer . function) (defvar gdb-pending-triggers nil (#$ . 5594)) (defalias 'gdb-add-pending '(macro . #[(item) "\301\302BB\207" [item push (gdb-pending-triggers)] 3])) (defalias 'gdb-pending-p '(macro . #[(item) "\301\302BB\207" [item member (gdb-pending-triggers)] 3])) (defalias 'gdb-delete-pending '(macro . #[(item) "\301\302\303\304BBE\207" [item setq gdb-pending-triggers delete (gdb-pending-triggers)] 5])) #@152 Wait until `gdb-pending-triggers' is empty and evaluate FORM. This function checks `gdb-pending-triggers' value every `gdb-wait-for-pending' seconds. (defalias 'gdb-wait-for-pending '(macro . #[(&rest body) "\301\302\303\304\303\305\306\307B\310BFE#\207" [body run-with-timer 0.5 nil lambda if (not gdb-pending-triggers) progn gdb-wait-for-pending] 10 (#$ . 6125)])) #@131 Register new PUBLISHER's SUBSCRIBER. SUBSCRIBER must be a pair, where cdr is a function of one argument (see `gdb-emit-signal'). (defalias 'gdb-add-subscriber '(macro . #[(publisher subscriber) "\302\303D \304BBB\207" [publisher subscriber add-to-list quote (t)] 4 (#$ . 6502)])) #@39 Unregister SUBSCRIBER from PUBLISHER. (defalias 'gdb-delete-subscriber '(macro . #[(publisher subscriber) "\302\303 EE\207" [publisher subscriber setq delete] 5 (#$ . 6790)])) (defalias 'gdb-get-subscribers #[(publisher) "\207" [publisher] 1]) #@68 Call cdr for each subscriber of PUBLISHER with SIGNAL as argument. (defalias 'gdb-emit-signal #[(publisher &optional signal) "\304!\305\211\205 \n@\211A!\210\nA\211\204\n \305*\207" [publisher subscriber --dolist-tail-- signal gdb-get-subscribers nil] 3 (#$ . 7043)]) #@158 Used to invalidate GDB buffers by emitting a signal in `gdb-update'. Must be a list of pairs with cars being buffers and cdr's being valid signal handlers. (defvar gdb-buf-publisher nil (#$ . 7325)) (byte-code "\300\301\302\303\304\305\306\307\310\311& \210\300\312\302\313\304\301\310\311&\210\300\314\302\315\304\301\310\311&\210\316\317\320\321\304\301\322\323\310\324& \210\316\325\326\327\322\330\304\312\310\311& \210\316\331\326\332\322\330\304\312\310\311& \210\316\333\326\334\322\335\304\312\310\311\306\336&\210\316\337\302\340\322\341\304\301\310\311\306\342&\210\316\343\326\344\322\330\304\312\310\311& \210\316\345\326\346\322\330\304\314\310\311& \210\316\347\302\350\322\330\304\314\310\311& \210\316\351\326\352\322\330\304\314\310\311& \210\316\353\326\354\322\330\304\314\310\311& \210\316\355\326\356\322\330\304\314\310\311& \210\316\357\302\360\322\330\304\314\310\311& \210\316\361\302\362\322\330\304\314\310\311& \207" [custom-declare-group gdb nil "GDB graphical interface" :group tools :link (info-link "(emacs)GDB Graphical Interface") :version "23.2" gdb-non-stop "GDB non-stop debugging settings" gdb-buffers "GDB buffers" custom-declare-variable gdb-debug-log-max 128 "Maximum size of `gdb-debug-log'. If nil, size is unlimited." :type (choice (integer :tag "Number of elements") (const :tag "Unlimited" nil)) "22.1" gdb-non-stop-setting t "When in non-stop mode, stopped threads can be examined while\nother threads continue to execute.\n\nGDB session needs to be restarted for this setting to take\neffect." boolean gdb-gud-control-all-threads "When enabled, GUD execution commands affect all threads when\nin non-stop mode. Otherwise, only current thread is affected." gdb-switch-reasons "List of stop reasons which cause Emacs to switch to the thread\nwhich caused the stop. When t, switch to stopped thread no matter\nwhat the reason was. When nil, never switch to stopped thread\nautomatically.\n\nThis setting is used in non-stop mode only. In all-stop mode,\nEmacs always switches to the thread which caused the stop." (choice (const :tag "All reasons" t) (set :tag "Selection of reasons..." (const :tag "A breakpoint was reached." "breakpoint-hit") (const :tag "A watchpoint was triggered." "watchpoint-trigger") (const :tag "A read watchpoint was triggered." "read-watchpoint-trigger") (const :tag "An access watchpoint was triggered." "access-watchpoint-trigger") (const :tag "Function finished execution." "function-finished") (const :tag "Location reached." "location-reached") (const :tag "Watchpoint has gone out of scope" "watchpoint-scope") (const :tag "End of stepping range reached." "end-stepping-range") (const :tag "Signal received (like interruption)." "signal-received")) (const :tag "None" nil)) (info-link "(gdb)GDB/MI Async Records") gdb-stopped-functions "List of functions called whenever GDB stops.\n\nEach function takes one argument, a parsed MI response, which\ncontains fields of corresponding MI *stopped async record:\n\n ((stopped-threads . \"all\")\n (thread-id . \"1\")\n (frame (line . \"38\")\n (fullname . \"/home/sphinx/projects/gsoc/server.c\")\n (file . \"server.c\")\n (args ((value . \"0x804b038\")\n (name . \"arg\")))\n (func . \"hello\")\n (addr . \"0x0804869e\"))\n (reason . \"end-stepping-range\"))\n\nNote that \"reason\" is only present in non-stop debugging mode.\n\n`bindat-get-field' may be used to access the fields of response.\n\nEach function is called after the new current thread was selected\nand GDB buffers were updated in `gdb-stopped'." (repeat function) (info-link "(gdb)GDB/MI Async Records") gdb-switch-when-another-stopped "When nil, Emacs won't switch to stopped thread if some other\nstopped thread is already selected." gdb-stack-buffer-locations "Show file information or library names in stack buffers." gdb-stack-buffer-addresses "Show frame addresses in stack buffers." gdb-thread-buffer-verbose-names "Show long thread names in threads buffer." gdb-thread-buffer-arguments "Show function arguments in threads buffer." gdb-thread-buffer-locations "Show file information or library names in threads buffer." gdb-thread-buffer-addresses "Show addresses for thread frames in threads buffer." gdb-show-threads-by-default "Show threads list buffer instead of breakpoints list by\ndefault."] 12) #@196 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-MI. (defvar gdb-debug-log nil (#$ . 11728)) #@119 Non-nil if Gdb-Enable-Debug mode is enabled. See the command `gdb-enable-debug' for a description of this minor mode. (custom-declare-variable 'gdb-enable-debug nil '(#$ . 11970) :set 'custom-set-minor-mode :initialize 'custom-initialize-default :group 'gdb :type 'boolean :version "22.1") #@371 Toggle logging of transaction between Emacs and Gdb. The log is stored in `gdb-debug-log' as an alist with elements whose cons is send, send-item or recv and whose cdr is the string being transferred. This list may grow up to a size of `gdb-debug-log-max' after which the oldest element (at the end of the list) is deleted every time a new one is added (at the front). (defalias 'gdb-enable-debug #[(&optional arg) "\303 \304=\203 \n?\202 \305 !\306V\307\310\n\203 \311\202 \312\"\210\313\314!\203D \315\302!\210\303 \2037 \303 \232\203D \316\317\n\203A \320\202B \321\"\210)\322 \210\n\207" [#1=#:last-message arg gdb-enable-debug current-message toggle prefix-numeric-value 0 run-hooks gdb-enable-debug-hook gdb-enable-debug-on-hook gdb-enable-debug-off-hook called-interactively-p any customize-mark-as-set message "Gdb-Enable-Debug mode %sabled" "en" "dis" force-mode-line-update] 3 (#$ . 12267) (list (or current-prefix-arg 'toggle))]) (byte-code "\301\302\303\304\300!\205\n \303\211%\210\305\306\307\310\311\312\313\314\315\316& \210\305\317\320\321\311\312\313\314\315\316& \210\305\322\323\324\311\325\313\314\315\326& \210\305\327\303\330\311\325\313\314\315\316& \207" [gdb-enable-debug-map add-minor-mode gdb-enable-debug nil boundp custom-declare-variable gdb-cpp-define-alist-program "gcc -E -dM -" "Shell command for generating a list of defined macros in a source file.\nThis list is used to display the #define directive associated\nwith an identifier as a tooltip. It works in a debug session with\nGDB, when `gud-tooltip-mode' is t.\n\nSet `gdb-cpp-define-alist-flags' for any include paths or\npredefined macros." :type string :group gdb :version "22.1" gdb-cpp-define-alist-flags "" "Preprocessor flags for `gdb-cpp-define-alist-program'." gdb-create-source-file-list t "Non-nil means create a list of files from which the executable was built.\n Set this to nil if the GUD buffer displays \"initializing...\" in the mode\n line for a long time when starting, possibly because your executable was\n built from a large number of files. This allows quicker initialization\n but means that these files are not automatically enabled for debugging,\n e.g., you won't be able to click in the fringe to set a breakpoint until\n execution has already stopped there." boolean "23.1" gdb-show-main "Non-nil means display source file containing the main routine at startup.\nAlso display the main routine in the disassembly buffer if present."] 10) (defalias 'gdb-force-mode-line-update #[(status) "\211\205 \304 !\205 r 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]) #@28 Switch to non-stop/A mode. (defalias 'gdb-control-all-threads #[nil "\301\302 \210\303\304!\207" [gdb-gud-control-all-threads t force-mode-line-update message "Now in non-stop/A mode."] 2 (#$ . 15004) nil]) #@28 Switch to non-stop/T mode. (defalias 'gdb-control-current-thread #[nil "\301\302 \210\303\304!\207" [gdb-gud-control-all-threads nil force-mode-line-update message "Now in non-stop/T mode."] 2 (#$ . 15218) nil]) (defalias 'gdb-find-watch-expression #[nil "\306`!\307Z8\211@\310\311\312\n\"\210\313\314\315\n\"\"\310\211\316\314\307\n\"\317\320#\211A@@\f\310\211\203n @\313 \"\311\321\3228\"\203Y \323\324Q\202] \325PP \325QA\211\204; *.\207" [gdb-var-list var varnum expr component-list varnumlet line-number-at-pos 2 nil string-match "\\(var[0-9]+\\)\\.\\(.*\\)" assoc match-string 1 split-string "\\." t ".*\\[[0-9]+\\]$" 3 "[" "]" "." var2 var1 component --dolist-tail--] 8]) #@278 When `gdb-non-stop' is t, add --thread option to COMMAND if `gdb-gud-control-all-threads' is nil and --all option otherwise. If NOALL is t, always add --thread option no matter what `gdb-gud-control-all-threads' value is. When `gdb-non-stop' is nil, return COMMAND unchanged. (defalias 'gdb-gud-context-command #[(command &optional noall) "\203 \203 \n\204 \203 \f\305P\207\306\f!\207\f\207" [gdb-non-stop gdb-gud-control-all-threads noall gdb-supports-non-stop command " --all " gdb-current-context-command] 2 (#$ . 15948)]) #@187 `gud-call' wrapper which adds --thread/--all options between CMD1 and CMD2. NOALL is the same as in `gdb-gud-context-command'. NOARG must be t when this macro is used outside `gud-def' (defalias 'gdb-gud-context-call '(macro . #[(cmd1 &optional cmd2 noall noarg) "\304\305\306 E\307\nF?\205 \310E\207" [cmd1 noall cmd2 noarg gud-call concat gdb-gud-context-command " " arg] 5 (#$ . 16489)])) (defalias 'gdb--check-interpreter #[(proc string) "\305G!?\2055 \306 \307\"\310 \n\"\210\311H\312>\2040 \313\314!\210\315\316\317#\320Q)\321\304!\210\322\n \")\207" [string proc filter msg gud-marker-filter zerop process-get gud-normal-filter set-process-filter 0 (94 126 64 38 42 61) "Error: you did not specify -i=mi on GDB's command line!" message propertize font-lock-face error "\n" make-local-variable gud-gdb-marker-filter] 4]) (defvar gdb-control-level 0) #@2801 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. COMMAND-LINE is the shell command for starting the gdb session. It should be a string consisting of the name of the gdb executable followed by command-line options. The command-line options should include "-i=mi" to use gdb's MI text interface. Note that the old "--annotate" option is no longer supported. 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. 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-select-frame | SPC gdb-toggle-breakpoint | | | RET gdb-goto-breakpoint | | | D gdb-delete-breakpoint | +-----------------------------------+----------------------------------+ (defalias 'gdb #[(command-line) "\203\"