MMCT TEAM
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  ]

Current File : //usr/share/emacs/24.3/lisp/progmodes/gdb-mi.elc
;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	!\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])
#@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\"\306!\203\"\307!\203\"rq\210	)\310=\203\"\311 \210\312\313!\210\314\n\315\316#\210\307!\317\320\321!#\210\322\323\"\210)\324\301!\210\325\324\304!\210\326\327\330@!\203\331\332\333!\206bA\334=\203a\335\202b\336!\332\337!BC\340\341\331\342!\331\343!\230?\205x\344\"\315D\211E\203\334E@D\345\331D!\211D!\203\323\346\347!FrFq\210\350\216\351D!\210\352\353\315\354#\203\322\355\356!\357\230\203\302\331\355\360!\361D!\"C\202\244\355\356!\362\230\203\244\355\360!B\202\244+EA\211E\204\202*B;\203\375\363B!\211B\250\203\375B\326V\203\375\324\364!\210B4C;\203\324\365!\210C5\366\354!\210*\367\370\371\"\210\372\373\370\"\210\374\375G\376\"\370\"\210\367\377\201L\"\210\372\201M\377\"\210\374\375G\201N\"\377\"\210\367\201O\201P\"\210\372\201Q\201O\"\210\374\375G\201R\"\201O\"\210\367\201S\201T\"\210\372\201U\201S\"\210\374\375G\201V\"\201S\"\210\367\201W\201X\"\210\372\201Y\201W\"\210\374\375G\201Z\"\201W\"\210\367\201[\201\\\"\210\367\201]\201^\"\210\372\201_\201]\"\210\374\375G\201`\"\201]\"\210\367\201a\201b\"\210\372\201c\201a\"\210\374\375G\201d\"\201a\"\210\367\201e\201f\"\210\372\201g\201e\"\210\374\375G\201h\"\201e\"\210\367\201i\201j\"\210\367\201k\201l\"\210\372\201m\201k\"\210\374\375G\201n\"\201k\"\210\367\201o\201p\"\210\372\201q\201o\"\210\374\375G\201r\"\201o\"\210\367\201s\201t\"\210\367\201u\201v\"\210\372\201w\201u\"\210\374\375G\201x\"\201u\"\210\367\201y\201z\"\210\372\201{\201y\"\210\374\375G\201|\"\201y\"\210\367\201}\201~\"\210\372\201\201}\"\210\374\375G\201\200\"\201}\"\210\367\201\201\201\202\"\210\367\201\203\201\204\"\210\201\205H\201\206\201\207#\210\201\205H\201\210\201\207#\210\201\205H\201\211\201\212#\210\201\205H\201\213\201\214#\210\201\205H\201\215\201\216#\210\201\205H\201\217\201\216#\210\201\205H\201\220\201\216#\210\201\205H\201\221\201\216#\210\201\205H\201\222\201\223#\210\201\205H\201\224\201\223#\210\201\205H\201\225\201\223#\210\201\205H\201\226\201\223#\210\324\201I!\210\201\227I\201\230\201\231\201\232\315\201\233$\210\372\201d\201\234\"\210\372\201\235\201\236\"\210\354J\315K\201\237 \210\201\240\201\241!\207" [gud-comint-buffer gud-minor-mode command-line proc gdb-control-level comint-input-sender buffer-name get-buffer-process gdba gdb-restore-windows error "Multiple debugging requires restarting in text command mode" gud-common-init nil gud-gdbmi-marker-filter process-put gud-normal-filter process-filter set-process-filter gdb--check-interpreter make-local-variable gdbmi 0 gdb-send ring-empty-p expand-file-name getenv "GDBHISTFILE" ms-dos "_gdb_history" ".gdb_history" "HISTSIZE" append ("~/.gdbinit") "." "~" (".gdbinit") file-readable-p generate-new-buffer " *temp*" ((byte-code "\301!\203\n\302!\210\301\207" [#1=#:temp-buffer buffer-name kill-buffer] 2)) insert-file-contents re-search-forward "^ *set history \\(filename\\|size\\)  *\\(.*\\)" t match-string 1 "filename" 2 file-name-directory "size" string-to-number comint-input-ring-size comint-input-ring-file-name comint-read-input-ring defalias gud-tbreak #[#2=(arg) "?\205	\302\303	\"\207" [gud-running arg gud-call "tbreak %f:%l"] 3 "Set temporary breakpoint at current line." #3="p"] local-set-key "" global-set-key vconcat "" gud-jump comint-input-ring system-type hsize hfile file --dolist-tail-- #1# gud-key-prefix gud-minor-mode-map gud-gdb-completion-function gdb-first-prompt gud-running #[#2# "?\205\f\301\302!\210\301\303!\207" [gud-running gud-call "tbreak %f:%l" "jump %f:%l"] 2 "Set execution address to current line." #3#] "\n" "\n" gud-up #[#2# "?\205	\302\303	\"\207" [gud-running arg gud-call "up %p"] 3 "Up N stack frames (numeric arg)." #3#] "<" "<" gud-down #[#2# "?\205	\302\303	\"\207" [gud-running arg gud-call "down %p"] 3 "Down N stack frames (numeric arg)." #3#] ">" ">" gud-print #[#2# "?\205	\302\303	\"\207" [gud-running arg gud-call "print %e"] 3 "Evaluate C expression at point." #3#] "" "" gud-pstar #[#2# "?\205	\302\303	\"\207" [gud-running arg gud-call "print* %e"] 3 "Evaluate C dereferenced pointer expression at point." #3#] gud-step #[#2# "?\205\302\303\304\305\"\306\307Q	\"\207" [gud-running arg gud-call gdb-gud-context-command "-exec-step" t #4=" " "%p"] 4 "Step one source line with display." #3#] "" "" gud-stepi #[#2# "?\205\302\303\304\305\"\306\307Q	\"\207" [gud-running arg gud-call gdb-gud-context-command "-exec-step-instruction" t #4# "%p"] 4 "Step one instruction with display." #3#] "	" "	" gud-next #[#2# "?\205\302\303\304\305\"\306\307Q	\"\207" [gud-running arg gud-call gdb-gud-context-command "-exec-next" t #4# "%p"] 4 "Step one line (skip functions)." #3#] "" "" gud-nexti #[#2# "?\205\302\303\304\305\"\306\307Q	\"\207" [gud-running arg gud-call gdb-gud-context-command "-exec-next-instruction" t #4# "%p"] 4 "Step one instruction (skip functions)." #3#] gud-cont #[#2# "?\205\302\303\304\305\"\306\305Q	\"\207" [gud-running arg gud-call gdb-gud-context-command "-exec-continue" nil #4#] 4 "Continue with display." #3#] "" "" gud-finish #[#2# "?\205\302\303\304\305\"\306\307Q	\"\207" [gud-running arg gud-call gdb-gud-context-command "-exec-finish" t #4# nil] 4 "Finish executing current function." #3#] "" "" gud-run #[#2# "?\205	\302\303	\"\207" [gud-running arg gud-call "-exec-run"] 3 "Run the program." #3#] gud-break #[#2# "?\205\303\304	\"\204\305\306\n\"\207\212\307 \210\310u\210\305\311\n\")\207" [gud-running mode-name arg string-match "Disassembly" gud-call "break %f:%l" beginning-of-line 2 "break *%a"] 3 "Set breakpoint at current line or address." #3#] "" "" gud-remove #[#2# "?\205\303\304	\"\204\305\306\n\"\207\212\307 \210\310u\210\305\311\n\")\207" [gud-running mode-name arg string-match "Disassembly" gud-call "clear %f:%l" beginning-of-line 2 "clear *%a"] 3 "Remove breakpoint at current line or address." #3#] "" "" gud-until #[#2# "?\205\303\304	\"\204\305\306\n\"\207\212\307 \210\310u\210\305\311\n\")\207" [gud-running mode-name arg string-match "Disassembly" gud-call "-exec-until %f:%l" beginning-of-line 2 "-exec-until *%a"] 3 "Continue to current line or address." #3#] "" "" gud-go #[#2# "?\205\303	\203\304\305!\202\306\n\"\207" [gud-running gdb-active-process arg gud-call gdb-gud-context-command "-exec-continue" "-exec-run"] 3 "Start or continue execution." #3#] gud-pp #[#2# "?\205\302\303\304\305\306 \"\307=\203\310 \202\311P	\"\207" [gud-running arg gud-call "pp " buffer-local-value major-mode window-buffer speedbar-mode gdb-find-watch-expression "%e"] 5 "Print the Emacs s-expression." #3#] 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] gud-gdbmi-completions add-hook completion-at-point-functions gud-gdb-completion-at-point local completion-at-point [remap comint-delchar-or-maybe-eof] gdb-delchar-or-quit gdb-update run-hooks gdb-mode-hook] 6 (#$ . 17367) (list (gud-query-cmdline 'gdb))])
(defalias 'gdb-init-1 #[nil "\306\211\306\211\306\307\306\211%&\306'\310(\306\211)*\306+\311,\312 @-\306\211./\306\21101\306\21123\306\2114567\3138\314\315\316\3179#!\210\320\321!\210\322 \210\323\324\325!!\210:\326=\203o\327\330\331\"\210\327\332\331\"\210\327\333\331\"\2107\203~\327\334\335\"\210\327\336\331\"\210;\203\215\327\337\340\"\210\327\341\342\"\210\327\343\344\"\207" [gdb-selected-frame gdb-frame-number gdb-thread-number gdb-var-list gdb-pending-triggers gdb-output-sink nil user 0 t window-fringes gdbmi gdb-force-mode-line-update propertize "initializing..." face gdb-get-buffer-create gdb-inferior-io gdb-clear-inferior-io gdb-inferior-io--init-proc get-process "gdb-inferior" windows-nt gdb-input "-gdb-set new-console off" ignore "-gdb-set interactive-mode on" "-gdb-set height 0" "-gdb-set non-stop 1" gdb-non-stop-handler "-enable-pretty-printing" "-file-list-exec-source-files" gdb-get-source-file-list "-file-list-exec-source-file" gdb-get-source-file "-gdb-show prompt" gdb-get-prompt gdb-location-alist gdb-source-file-list gdb-last-command gdb-token-number gdb-handler-alist gdb-handler-number gdb-prompt-name gdb-first-done-or-error gdb-buffer-fringe-width gdb-debug-log gdb-source-window gdb-inferior-status gdb-continuation gdb-buf-publisher gdb-threads-list gdb-breakpoints-list gdb-register-names gdb-non-stop-setting gdb-non-stop gdb-buffer-type font-lock-variable-name-face system-type gdb-create-source-file-list] 6])
(defalias 'gdb-non-stop-handler #[nil "eb\210\302\303\304\305#\203\306\307!\210\304\211\211\207\305\310\311\312\"\210\310\313\314\"\207" [gdb-non-stop gdb-supports-non-stop re-search-forward "No symbol" nil t message "This version of GDB doesn't support non-stop mode.  Turning it off." gdb-input "-gdb-set target-async 1" ignore "-list-target-features" gdb-check-target-async] 5])
(defalias 'gdb-check-target-async #[nil "eb\210\301\302\303\304#?\205\305\306!\210\303\307\310\311\"\207" [gdb-non-stop re-search-forward "async" nil t message "Target doesn't support non-stop mode.  Turning it off." gdb-input "-gdb-set non-stop 0" ignore] 4])
#@158 Delete ARG characters or send a quit command to GDB.
Send a quit only if point is at the end of the buffer, there is
no input, and GDB is waiting for input.
(defalias 'gdb-delchar-or-quit #[(arg) "p=\203\f	\305=\204\306\307!\210\310!m\203:\n\203:\311\n!\203:\204:`\312\313\n!!U\203:\314c\210\315\316\211\"\202=\317\f!)\207" [gud-comint-buffer gud-minor-mode proc gud-running arg gdbmi error "Not in a GDB-MI buffer" get-buffer-process process-live-p marker-position process-mark "quit" comint-send-input t delete-char] 4 (#$ . 29798) "p"])
#@47 Alist of #define directives for GUD tooltips.
(defvar gdb-define-alist nil (#$ . 30357))
#@57 Create an alist of #define directives for GUD tooltips.
(defalias 'gdb-create-define-alist #[nil "\306 \307\310\311!!\312\216	r	q\210\2030\313!\2030\314\n!\2040\315\316\317D\317\320\f\321
Q&\210*r	q\210\322 +\323\324\316#\317\211\317\211\205t@\323\325\"A@\211BBA\211\204S\317.\207" [file standard-output default-directory shell-file-name gdb-cpp-define-alist-program gdb-cpp-define-alist-flags buffer-file-name get-buffer-create generate-new-buffer-name " *string-output*" ((kill-buffer standard-output)) file-exists-p file-remote-p call-process t nil "-c" " " buffer-string split-string "\n" "[( ]" output define-list name gdb-define-alist define --dolist-tail--] 10 (#$ . 30452)])
(defalias 'gdb-tooltip-print #[(expr) "r\302\303!q\210eb\210\304\305\306\307#\203%\310\311\312\313\314!!Q	\206!\315 ?\"\202;\304\316\306\307#\205;\310\312\313\314!!	\206:\315 ?\")\207" [expr gud-tooltip-echo-area gdb-get-buffer gdb-partial-output-buffer re-search-forward ".*value=\\(\".*\"\\)" nil t tooltip-show " = " read match-string 1 display-graphic-p "msg=\\(\".+\"\\)$"] 6])
(defalias 'gdb-tooltip-print-1 #[(expr) "r\301\302!q\210eb\210\303\304\305\306#\205$\307\310!?\205$\311\312\313Q\314\305\315DE\")\207" [expr gdb-get-buffer gdb-partial-output-buffer search-forward "expands to: " nil t looking-at "\\S-+.*(.*).*" gdb-input "-data-evaluate-expression \"" "\"" lambda gdb-tooltip-print] 6])
(defalias 'gdb-init-buffer #[nil "\304\300!\210\305\304\302!\210	\205\304\306!\210\307 \210\310\311\307\312\313$\207" [gud-minor-mode gud-tool-bar-map tool-bar-map gud-tooltip-mode make-local-variable gdbmi gdb-define-alist gdb-create-define-alist add-hook after-save-hook nil t] 5])
(defalias 'gdb--if-arrow '(macro . #[(arrow-position start-posn end-posn &rest body) "\305\306!\307	\310\311	DDC\307\312\313\314\nDDE\315\316\317\312\nE\312\320D\321	DEE\fBBEEEE)\207" [buffer arrow-position end-posn start-posn body make-symbol "buffer" if let marker-buffer equal window-buffer posn-window with-current-buffer when or posn-point marker-position] 15]))
(put 'gdb--if-arrow 'lisp-indent-function 3)
#@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) "\306!\307!\203q\310!\211\311	\211@)!\232\203pr\fq\210\n	\232\204G\n\312
8\206?
A@:\203<
A@@\202?
A@)\313!\232\203o\314	\312
8\206a
A@:\203^
A@@\202a
A@)!\315\316\317!P!\210)))\205\341\310!\211\311	\211@)!\232\205\340rq\210\n	\232\204\265\n\312
8\206\254
A@:\203\251
A@@\202\254
A@)\313!\232\205\337\212eb\210\314	\312
8\206\323
A@:\203\320
A@@\202\323
A@)!Sy\210\320u\210\315\321!)))*\207" [event end start gud-overlay-arrow-position #1=#:buffer position event-start event-end marker-buffer window-buffer 5 marker-position line-number-at-pos gud-call "until " number-to-string 2 "until *%a" line gdb-disassembly-position #2=#:buffer] 5 (#$ . 32612) "e"])
#@296 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) "\306!\307!\203z\310!\211\311	\211@)!\232\203yr\fq\210\n	\232\204G\n\312
8\206?
A@:\203<
A@@\202?
A@)\313!\232\203x\314	\312
8\206a
A@:\203^
A@@\202a
A@)!\315\316\317!P!\210\315\320\317!P!\210)))\205\356\310!\211\311	\211@)!\232\205\355rq\210\n	\232\204\276\n\312
8\206\265
A@:\203\262
A@@\202\265
A@)\313!\232\205\354\212eb\210\314	\312
8\206\334
A@:\203\331
A@@\202\334
A@)!Sy\210\321u\210\315\322!\210\315\323!)))*\207" [event end start gud-overlay-arrow-position #1=#:buffer position event-start event-end marker-buffer window-buffer 5 marker-position line-number-at-pos gud-call "tbreak " number-to-string "jump " 2 "tbreak *%a" "jump *%a" line gdb-disassembly-position #2=#:buffer] 5 (#$ . 33572) "e"])
(byte-code "\300\301\302\303\304\305\306\307\310\311&	\210\300\312\313\314\304\315\306\307\310\311&	\210\300\316\302\317\304\305\306\307\310\320&	\210\300\321\322\323\324\325\326\327\306\307\304\305\310\311&
\207" [custom-declare-variable gdb-show-changed-values t "If non-nil change the face of out of scope variables and changed values.\nOut of scope variables are suppressed with `shadow' face.\nChanged values are highlighted with the face `font-lock-warning-face'." :type boolean :group gdb :version "22.1" gdb-max-children 40 "Maximum number of children before expansion requires confirmation." integer gdb-delete-out-of-scope "If non-nil delete watch expressions automatically when they go out of scope." "22.2" gdb-speedbar-auto-raise nil "Non-nil if Gdb-Speedbar-Auto-Raise mode is enabled.\nSee the command `gdb-speedbar-auto-raise' for a description of this minor mode." :set custom-set-minor-mode :initialize custom-initialize-default] 14)
#@186 Minor mode to automatically raise the speedbar for watch expressions.
With prefix argument ARG, automatically raise speedbar if ARG is
positive, otherwise don't automatically raise it.
(defalias 'gdb-speedbar-auto-raise #[(&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-speedbar-auto-raise current-message toggle prefix-numeric-value 0 run-hooks gdb-speedbar-auto-raise-hook gdb-speedbar-auto-raise-on-hook gdb-speedbar-auto-raise-off-hook called-interactively-p any customize-mark-as-set message "Gdb-Speedbar-Auto-Raise mode %sabled" "en" "dis" force-mode-line-update] 3 (#$ . 35621) (list (or current-prefix-arg 'toggle))])
(byte-code "\304\305\306\307\300!\205\n\306\211%\210\310\311\306\312\313\314\315\316\317\320&	\210\321	\322\323#\210\321\n\324\325\"\323#\207" [gdb-speedbar-auto-raise-map gud-minor-mode-map global-map gud-key-prefix add-minor-mode gdb-speedbar-auto-raise nil boundp custom-declare-variable gdb-use-colon-colon-notation "If non-nil use FUN::VAR format to display variables in the speedbar." :type boolean :group gdb :version "22.1" define-key "" gud-watch vconcat ""] 10)
#@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=\203d\n\203\311\312\n!!\210\313\314!\210\315 r\316\216\f\203*\317\320\321\"\202F
\203;\"\203;\322 \323 {\202F\324\325!\205B\326\327`!P#\330\331#G\332#$\210\333\334#\335Q\336\332\337#DE\",\202g\340\341!)\207" [gud-comint-buffer minor-mode event save-selected-window--state arg transient-mark-mode buffer-local-value gud-minor-mode gdbmi posn-set-point event-end require tooltip internal--before-save-selected-window ((internal--after-save-selected-window save-selected-window--state)) completing-read "Name of variable: " gud-gdb-complete-command region-beginning region-end derived-mode-p gdb-registers-mode "$" tooltip-identifier-from-point set-text-properties 0 nil gdb-input "-var-create - * " "" lambda gdb-var-create-handler message "gud-watch is a no-op in this mode." mark-active expr] 7 (#$ . 36912) (list current-prefix-arg last-input-event)])
(defalias 'gdb-var-create-handler #[(expr) "\306 \307\310\"\204U\307\311\"	\312\230\203%\n\203%\203%\313\fQ\211\202&\f\307\314\"\307\315\"\307\316\"\317\307\320\"
\257\211B\321\322!\210\323\230?\205Q\324\323!)\202Y\325\326\f\")\207" [result gdb-current-language gdb-use-colon-colon-notation gdb-selected-frame expr gdb-frame-address gdb-json-partial-output bindat-get-field msg name "c" "::" numchild type value nil has_more speedbar 1 "GUD" speedbar-change-initial-expansion-list message-box "No symbol \"%s\" in current context." var gdb-var-list speedbar-initial-expansion-list-name] 10])
(defalias 'gdb-speedbar-update #[nil "\302\300!\205\303!\205\304	\235?\205\305\306\307\"\210\304	B\211\207" [speedbar-frame gdb-pending-triggers boundp frame-live-p gdb-speedbar-timer gdb-input "-environment-pwd" gdb-speedbar-timer-fn] 3])
(defalias 'gdb-speedbar-timer-fn #[nil "\203\303	!\210\304\305\n\"\306 \207" [gdb-speedbar-auto-raise speedbar-frame gdb-pending-triggers raise-frame delete gdb-speedbar-timer speedbar-timer-fn] 3])
(defalias 'gdb-var-evaluate-expression-handler #[(varnum changed) "eb\210\304\305\306\307#\210\310	\"\211\203&\203\311\n\233\303\240\210\312\n\233\313\314\315!!\240\210)\316 \207" [varnum gdb-var-list var changed re-search-forward ".*value=\\(\".*\"\\)" nil t assoc 5 4 read match-string 1 gdb-speedbar-update] 5])
(defalias 'gdb-var-list-children #[(varnum) "\301\302P\303\"\210\301\304P\305\306\307DE\"\207" [varnum gdb-input "-var-update " ignore "-var-list-children --all-values " lambda nil gdb-var-list-children-handler] 6])
(defalias 'gdb-var-list-children-handler #[(varnum) "\303\304\305\306!!\304	\302\"\307\310\215\210+\311 \207" [var-list output children nil bindat-get-field gdb-json-partial-output "child" child-already-watched (byte-code "\306\211\203z\n@	@\230\203o	AA\307\f\310\"\240\210	
B\306\211\203k\n@\307\311\"\307\312\"\307\310\"\307\313\"\307\314\"\306\307\315\"\257\316@\"\203^\317\320\306\"\210
B)\nA\211\204)*\202s	
B\nA\211\204*
\237\306\207" [gdb-var-list var --dolist-tail-- varnum output var-list nil bindat-get-field numchild name exp type value has_more assoc throw child-already-watched children child varchild] 10) gdb-speedbar-update] 3])
#@65 Set the output format for a variable displayed in the speedbar.
(defalias 'gdb-var-set-format #[(format) "\304e`\"\305Z8\211@\306\307\n\310R\311\"\210\312 *\207" [gdb-var-list var varnum format count-lines 2 gdb-input "-var-set-format " " " ignore gdb-var-update] 6 (#$ . 40251)])
(defalias 'gdb-var-delete-1 #[(var varnum) "\305\306P\307\"\210\310	\n\"\211\311\211\205/\f@\312	@\313P@\"\203'\310\n\"\fA\211\204\311*\207" [varnum var gdb-var-list varchild --dolist-tail-- gdb-input "-var-delete " ignore delq nil string-match "\\."] 4])
#@53 Delete watch expression at point from the speedbar.
(defalias 'gdb-var-delete #[nil "\304 \305\306\"\210\307e`\"\310Z	8\211@\305\311\n@\"\203\"\312\313!\202&\314\n\"+\207" [text gdb-var-list var varnum speedbar-line-text string-match "\\(\\S-+\\)" count-lines 2 "\\." message-box "Can only delete a root expression" gdb-var-delete-1] 4 (#$ . 40811) nil])
#@64 Delete children of variable object at point from the speedbar.
(defalias 'gdb-var-delete-children #[(varnum) "\301\302P\303\"\207" [varnum gdb-input "-var-delete -c " ignore] 3 (#$ . 41179)])
#@57 Assign a value to a variable displayed in the speedbar.
(defalias 'gdb-edit-value #[(_text _token _indent) "\304e`\"\305Z8\211@\306\307!\310\311\n\312R\313\314\315DE\"+\207" [gdb-var-list var varnum value count-lines 2 read-string "New value: " gdb-input "-var-assign " " " lambda nil gdb-edit-value-handler] 7 (#$ . 41378)])
(defconst gdb-error-regexp "\\^error,msg=\\(\".+\"\\)")
(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])
(defalias 'gdb-var-update #[nil "\301\235\204\302\303\304\"\210\301B\211\207" [gdb-pending-triggers gdb-var-update gdb-input "-var-update --all-values *" gdb-var-update-handler] 3])
(defalias 'gdb-var-update-handler #[nil "\306\307 \300\"	\310\211\203@\311\n\233\310\240\210A\211\204*	\310\211\203\322@\306
\312\"#\313#	\"\306
\314\"$\n\203\262\306
\315\"\306
\316\"%\211&\317\230\203k'\203b\320\n#\"\210\202\261\311\n\233\321\240\210\202\261&\322\230\203\244\323\n\233%\240\210%\203\205%\324\230\203\261$\204\261\325\n8\324\230\203\261\326\n\233\306
\327\"\240\210\311\n\233\330\240\210\202\261&\331\230\203\261\320\n#\"\210*\310\211\306
\332\"()*$\203\311\f\211A@\211)\203\305#)@\230\203\263\333$!\333\325)8!+,)AA$\240\210)*B*,+V\203b+\334-.-.W\203\f\211A@*B*-T\211-\202*(\310/\211\203^@/\306/\312\"\306/\335\"\306/\336\"\306/\337\"\306/\327\"\330\306/\316\"\257\2110*B*)A\211\204)*\202\257,+W\203\257,\334-.-.W\203\214\f\211A@*B*-T\211-\202s*+,Z\334-.-.W\203\256\f\211A@\210-T\211-\202\231**\202\272)*B*\f\211A@\211)\204\316*\237.A\211\204),\340\3411\"1\342 \207" [changelist gdb-var-list var --dolist-tail-- temp-var-list change bindat-get-field gdb-json-partial-output nil 5 name assoc new_num_children in_scope has_more "false" gdb-var-delete-1 out-of-scope "true" 6 "0" 2 4 value changed "invalid" new_children string-to-number 0 exp numchild type delq gdb-var-update gdb-speedbar-update varnum new-num has-more scope gdb-delete-out-of-scope children var1 var-list previous new dummy --dotimes-limit-- child varchild gdb-pending-triggers] 10])
#@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) "\306\307\"\203/\310	\n\"\211A@\3118\312
!X\204'\313\314\315\f
#!\203+\316	!\210+\202p\306\317\"\203l\n\320\211\203[@\306	\321P@\"\203R\322\n\"A\211\204?*\323	!\210\324\325!\210\326!\210\202p\327\330!\210\331 \207" [text token gdb-var-list var expr children string-match "+" assoc 2 string-to-number y-or-n-p format "%s has %s children. Continue? " gdb-var-list-children "-" 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 gdb-max-children --dolist-tail-- indent] 6 (#$ . 43661)])
(defalias 'gdb-get-target-string #[nil "rq\210	)\207" [gud-comint-buffer gud-target-name] 1])
(defvar gdb-buffer-rules nil)
(defalias 'gdb-rules-name-maker #[(rules-entry) "\211A@)\207" [rules-entry x] 2])
(defalias 'gdb-rules-buffer-mode #[(rules-entry) "\3018\207" [rules-entry 2] 2])
(defalias 'gdb-rules-update-trigger #[(rules-entry) "\3018\207" [rules-entry 3] 2])
#@89 Rename current buffer according to name-maker associated with
it in `gdb-buffer-rules'.
(defalias 'gdb-update-buffer-name #[nil "\303\304	\"!\211\205\305\n !)\207" [gdb-buffer-type gdb-buffer-rules f gdb-rules-name-maker assoc rename-buffer] 5 (#$ . 44912)])
#@55 Get `gdb-buffer-rules' entry for current buffer type.
(defalias 'gdb-current-buffer-rules #[nil "\302	\"\207" [gdb-buffer-type gdb-buffer-rules assoc] 3 (#$ . 45181)])
#@131 Get thread object of current buffer from `gdb-threads-list'.

When current buffer is not bound to any thread, return main
thread.
(defalias 'gdb-current-buffer-thread #[nil "\302	\"A\207" [gdb-thread-number gdb-threads-list assoc] 3 (#$ . 45357)])
#@62 Get current stack frame object for thread of current buffer.
(defalias 'gdb-current-buffer-frame #[nil "\300\301 \302\"\207" [bindat-get-field gdb-current-buffer-thread frame] 3 (#$ . 45612)])
#@44 Get value of `gdb-buffer-type' for BUFFER.
(defalias 'gdb-buffer-type #[(buffer) "rq\210	)\207" [buffer gdb-buffer-type] 1 (#$ . 45811)])
#@83 Return t if current GDB buffer shows main selected thread and
is not bound to it.
(defalias 'gdb-buffer-shows-main-thread-p #[nil "\300\301!?\207" [local-variable-p gdb-thread-number] 2 (#$ . 45956)])
#@155 Get a specific GDB buffer.

In that buffer, `gdb-buffer-type' must be equal to BUFFER-TYPE
and `gdb-thread-number' (if provided) must be equal to THREAD.
(defalias 'gdb-get-buffer #[(buffer-type &optional thread) "\300\301\215\207" [found (byte-code "\306 \307\211\203-	@rq\210\n=\203%\f\203 
\f\232\203%\310\311\"\210)	A\211\204	\307*\307\207" [buffer --dolist-tail-- gdb-buffer-type buffer-type thread gdb-thread-number buffer-list nil throw found] 4)] 2 (#$ . 46164)])
#@440 Create a new GDB buffer of the type specified by BUFFER-TYPE.
The buffer-type should be one of the cars in `gdb-buffer-rules'.

If THREAD is non-nil, it is assigned to `gdb-thread-number'
buffer-local variable of the new buffer.

Buffer mode and name are selected according to buffer type.

If buffer has trigger associated with it in `gdb-buffer-rules',
this trigger is subscribed to `gdb-buf-publisher' and called with
'update argument.
(defalias 'gdb-get-buffer-create #[(buffer-type &optional thread) "\306	\"\206b\307\n\"\310\311!rq\210\312\f!\313\f!\211\203% \210	\2033\314\315!\210	
\314\316!\210\317\316\"\314\320!\210\321\322\f! !\210
\203`\323\324p\325
p\"B\326#\210
\327!\210p-\207" [buffer-type thread gdb-buffer-rules new rules trigger gdb-get-buffer assoc generate-new-buffer "limbo" gdb-rules-buffer-mode gdb-rules-update-trigger make-local-variable gdb-thread-number gud-minor-mode buffer-local-value tool-bar-map rename-buffer gdb-rules-name-maker add-to-list gdb-buf-publisher gdb-bind-function-to-buffer t start mode gdb-buffer-type gud-comint-buffer gud-tool-bar-map] 7 (#$ . 46656)])
#@55 Return a function which will evaluate EXPR in BUFFER.
(defalias 'gdb-bind-function-to-buffer #[(expr buffer) "\302\303\304\305\306	D\307BBEE\207" [buffer expr lambda (&rest args) with-current-buffer apply quote (args)] 7 (#$ . 47793)])
(defalias 'def-gdb-preempt-display-buffer '(macro . #[(name buffer &optional doc split-horizontal) "\304\305	\205	\306\307\310\n\311BBE\257\207" [name doc buffer split-horizontal defun (&optional thread) (message thread) gdb-preempt-existing-or-display-buffer gdb-get-buffer-create (thread)] 9]))
(defalias 'gdb-set-buffer-rules #[(buffer-type &rest rules) "\304	\"\211\203\n\241\202B	B\211)\207" [buffer-type gdb-buffer-rules binding rules assoc] 4])
#@57 Generic mode to derive all other GDB buffer modes from.
(defalias 'gdb-parent-mode #[nil "\301 \210\302\303 \210\304\305\306\307\302$\207" [buffer-read-only kill-all-local-variables t buffer-disable-undo add-hook kill-buffer-hook #[nil "\302\303 !\211\205\304p\305p\"B	\"\211)\207" [trigger gdb-buf-publisher gdb-rules-update-trigger gdb-current-buffer-rules delete gdb-bind-function-to-buffer] 6] nil] 5 (#$ . 48503)])
(gdb-set-buffer-rules 'gdb-partial-output-buffer 'gdb-partial-output-name)
(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-io-buffer #[nil "\300\301\302!!\207" [gdb-display-buffer gdb-get-buffer-create gdb-inferior-io] 3 (#$ . 49319) nil])
(defalias 'gdb-inferior-io--init-proc #[(proc) "\302\303\"\210\304\305\"\210\306\307\"\206\310!\211?\206	\311\230?\205'\312\313	P\314\")\207" [proc tty set-process-filter gdb-inferior-filter set-process-sentinel gdb-inferior-io-sentinel process-get remote-tty process-tty-name "" gdb-input "-inferior-tty-set " ignore] 4])
(defalias 'gdb-inferior-io-sentinel #[(proc str) "\304!\305=\205.\306	!\307!\211\205-\310!\205-\311\n!\205-\312\n\313\314\211\211%\210\315\306\n!!*\207" [proc gud-comint-buffer io-buffer gdb-proc process-status failed get-buffer-process process-buffer process-live-p buffer-live-p comint-exec "gdb-inferior" nil gdb-inferior-io--init-proc] 7])
#@60 `display-buffer' action for displaying GDB utility frames.
(custom-declare-variable 'gdb-display-buffer-other-frame-action ''((display-buffer-reuse-window display-buffer-pop-up-frame) (reusable-frames . visible) (inhibit-same-window . t) (pop-up-frame-parameters (height . 14) (width . 80) (unsplittable . t) (tool-bar-lines) (menu-bar-lines) (minibuffer))) '(#$ . 50204) :group 'gdb :type display-buffer--action-custom-type :risky t :version "24.3")
#@50 Display IO of debugged program in another frame.
(defalias 'gdb-frame-io-buffer #[nil "\301\302\303!\"\207" [gdb-display-buffer-other-frame-action display-buffer gdb-get-buffer-create gdb-inferior-io] 3 (#$ . 50661) nil])
(defvar gdb-inferior-io-mode-map (byte-code "\301 \302\303\304#\210\302\305\306#\210\302\307\310#\210\302\311\312#\210\302\313\312#\210)\207" [map make-sparse-keymap define-key "" gdb-io-interrupt "" gdb-io-stop "" gdb-io-quit "" gdb-io-eof ""] 4))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\305\306!\204\302\306\307\310#\210\300\207" [gdb-inferior-io-mode-hook variable-documentation put purecopy "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 gdb-inferior-io-mode-map definition-name gdb-inferior-io-mode] 5)
(defvar gdb-inferior-io-mode-map (make-sparse-keymap))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [gdb-inferior-io-mode-map variable-documentation put purecopy "Keymap for `gdb-inferior-io-mode'." gdb-inferior-io-mode derived-mode-parent comint-mode] 5)
#@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 "\304\300!\210\305\306 \210\307\310\306\311N\203\312\307\311\306\311N#\210\313!\204'\314\315 \"\210\316!\210\317\320p\321#\210)\322\323!\207" [delay-mode-hooks major-mode mode-name gdb-inferior-io-mode-map 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 "gdb-inferior" nil run-mode-hooks gdb-inferior-io-mode-hook] 5 (#$ . 51849) nil])
(defalias 'gdb-inferior-filter #[(proc string) "\302\230\204\f\303\304\305!!\210r\304\305!q\210\306	\")\207" [string proc "" gdb-display-buffer gdb-get-buffer-create gdb-inferior-io comint-output-filter] 3])
#@39 Interrupt the program being debugged.
(defalias 'gdb-io-interrupt #[nil "\302\303!	\"\207" [gud-comint-buffer comint-ptyp interrupt-process get-buffer-process] 3 (#$ . 52799) nil])
#@49 Send quit signal to the program being debugged.
(defalias 'gdb-io-quit #[nil "\302\303!	\"\207" [gud-comint-buffer comint-ptyp quit-process get-buffer-process] 3 (#$ . 52987) nil])
#@34 Stop the program being debugged.
(defalias 'gdb-io-stop #[nil "\302\303!	\"\207" [gud-comint-buffer comint-ptyp stop-process get-buffer-process] 3 (#$ . 53175) nil])
#@49 Send end-of-file to the program being debugged.
(defalias 'gdb-io-eof #[nil "\301\302!!\207" [gud-comint-buffer process-send-eof get-buffer-process] 3 (#$ . 53348) nil])
(defalias 'gdb-clear-inferior-io #[nil "r\300\301!q\210\302 )\207" [gdb-get-buffer-create gdb-inferior-io erase-buffer] 2])
#@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};" (#$ . 53649))
#@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" (#$ . 54049))
#@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" (#$ . 54415))
#@48 Icon for enabled breakpoint in display margin.
(defvar breakpoint-enabled-icon nil (#$ . 54743))
#@49 Icon for disabled breakpoint in display margin.
(defvar breakpoint-disabled-icon nil (#$ . 54846))
(byte-code "\300 \203\301\302\303\"\203\301\304\305\"\210\306\307\310\311\312\313%\210\306\314\315\316\312\313%\207" [display-images-p define-fringe-bitmap breakpoint "<~\377\377\377\377~<" hollow-right-triangle "\340\220\210\204\204\210\220\340" custom-declare-face breakpoint-enabled ((t :foreground "red1" :weight bold)) "Face for enabled breakpoint icon in fringe." :group gdb 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."] 6)
#@191 Regexp matching GDB commands that enter a recursive reading loop.
As long as GDB is in the recursive reading loop, it does not expect
commands to be prefixed by "-interpreter-exec console".
(defvar gdb-control-commands-regexp "^\\(commands\\|if\\|while\\|define\\|document\\|python\\|while-stepping\\|stepping\\|ws\\|actions\\)\\([[:blank:]]+.*\\)?$" (#$ . 55676))
#@31 A comint send filter for gdb.
(defalias 'gdb-send #[(proc string) "rq\210\306\307ed\310#\210*\n\311\230\204\n\202\203\312\313\n\"\204+\f\314V\203H\306\315\n\316P\"\210\312\317\n\"\203\214\f\314V\203\214\fS\202\214\312\320\n\"\203Y\n\316Q\202\214\306\321\322\n!\316Q\203q\323BB\315\"\210)\312\317\n\"\203\211\f\314V\203\211\fS\324\312\n\"\205\230\fT\211\207" [gud-comint-buffer inhibit-read-only string gdb-last-command gdb-control-level gdb-first-done-or-error t remove-text-properties (face) "" string-match "^-" 0 process-send-string "\n" "^end$" "\\\\$" "-interpreter-exec console " gdb-mi-quote mi-send nil proc gdb-continuation to-send gdb-enable-debug gdb-debug-log gdb-control-commands-regexp] 4 (#$ . 56047)])
#@169 Return STRING quoted properly as an MI argument.
The string is enclosed in double quotes.
All embedded quotes, newlines, and backslashes are preceded with a backslash.
(defalias 'gdb-mi-quote #[(string) "\301\302\303#\301\304\305\306\211%\307\307Q\207" [string replace-regexp-in-string "\\([\"\\]\\)" "\\\\\\&" "\n" "\\n" t "\""] 6 (#$ . 56824)])
#@127 Send COMMAND to GDB via the MI interface.
Run the function HANDLER-FUNCTION, with no arguments, once the command is
complete.
(defalias 'gdb-input #[(command handler-function) "\203\306	\nEB\fT\307\f!	P\f\nB
B\310\311!	\312P\"\207" [gdb-enable-debug command handler-function gdb-debug-log gdb-token-number gdb-handler-alist send-item number-to-string process-send-string get-buffer-process "\n" gud-comint-buffer] 4 (#$ . 57183)])
#@42 Add --thread to gdb COMMAND when needed.
(defalias 'gdb-current-context-command #[(command) "\203
	\203
\n\303Q\207\n\207" [gdb-thread-number gdb-supports-non-stop command " --thread "] 3 (#$ . 57630)])
#@115 Add thread information and asterisks to string NAME.

If `gdb-thread-number' is nil, just wrap NAME in asterisks.
(defalias 'gdb-current-context-buffer-name #[(name) "\302\303\301!\203\304\305	\"\202\306\302R\207" [name gdb-thread-number "*" local-variable-p format " (bound to thread %s)" ""] 5 (#$ . 57844)])
#@68 Add thread information to MODE which is to be used as
`mode-name'.
(defalias 'gdb-current-context-mode-name #[(mode) "	\203\f\302\303	\"\202
\304P\207" [mode gdb-thread-number format " [thread %s]" ""] 4 (#$ . 58166)])
#@66 Default command to execute an executable under the GDB debugger.
(custom-declare-variable 'gud-gdb-command-name "gdb -i=mi" '(#$ . 58394) :type 'string :group 'gdb)
(defalias 'gdb-resync #[nil "\303\304\303\211\207" [gud-running gdb-output-sink gdb-pending-triggers nil user] 2])
#@111 Update buffers showing status of debug session.
If NO-PROC is non-nil, do not try to contact the GDB process.
(defalias 'gdb-update #[(&optional no-proc) "\203\306\307\310\311	#!\210\312 \210\313\n\204\314 \210\315\316!\210\315\317!\210\n\204)\320\321\"\210\322 \210\323\304!\205Z\324\f!\205Z
\313\211\203W@\325\233\313\240\210A\211\204B*\326 \207" [gdb-first-prompt font-lock-variable-name-face no-proc gdb-buf-publisher speedbar-frame gdb-var-list gdb-force-mode-line-update propertize "initializing..." face gdb-init-1 nil gdb-get-main-selected-frame gdb-get-buffer-create gdb-threads-buffer gdb-breakpoints-buffer gdb-emit-signal update gdb-get-changed-registers boundp frame-live-p 5 gdb-var-update var --dolist-tail--] 6 (#$ . 58684)])
#@187 Only this function must be used to change `gdb-thread-number'
value to NUMBER, because `gud-running' and `gdb-frame-number'
need to be updated appropriately when current thread changes.
(defalias 'gdb-setq-thread-number #[(number) "\303\230\204\303\304 \207" [number gdb-thread-number gdb-frame-number "0" gdb-update-gud-running] 2 (#$ . 59459)])
#@459 Set `gud-running' according to the state of current thread.

`gdb-frame-number' is set to 0 if current thread is now stopped.

Note that when `gdb-gud-control-all-threads' is t, `gud-running'
cannot be reliably used to determine whether or not execution
control buttons should be shown in menu or toolbar. Use
`gdb-running-threads-count' and `gdb-stopped-threads-count'
instead.

For all-stop mode, thread information is unavailable while target
is running.
(defalias 'gdb-update-gud-running #[nil "\303\304 \305\"\306\230\304 \205	=?\205\307\211)\207" [gud-running old-value gdb-frame-number bindat-get-field gdb-current-buffer-thread state "running" "0"] 3 (#$ . 59819)])
#@60 Return t if "Run/continue" should be shown on the toolbar.
(defalias 'gdb-show-run-p #[nil "?\206	\203
\n\204?\206	\205\f\305V\207" [gdb-active-process gdb-gud-control-all-threads gdb-non-stop gud-running gdb-stopped-threads-count 0] 2 (#$ . 60508)])
#@52 Return t if "Stop" should be shown on the toolbar.
(defalias 'gdb-show-stop-p #[nil "\203	\204\f\n\206\205\304V\207" [gdb-gud-control-all-threads gdb-non-stop gud-running gdb-running-threads-count 0] 2 (#$ . 60776)])
(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])
(defalias 'gdb-car< #[(a b) "@	@W\207" [a b] 2])
(defvar gdbmi-record-list '((gdb-gdb . "(gdb) \n") (gdb-done . "\\([0-9]*\\)\\^done,?\\(.*?\\)\n") (gdb-starting . "\\([0-9]*\\)\\^running\n") (gdb-error . "\\([0-9]*\\)\\^error,\\(.*?\\)\n") (gdb-console . "~\\(\".*?\"\\)\n") (gdb-internals . "&\\(\".*?\"\\)\n") (gdb-stopped . "\\*stopped,?\\(.*?\\)\n") (gdb-running . "\\*running,\\(.*?\n\\)") (gdb-thread-created . "=thread-created,\\(.*?\n\\)") (gdb-thread-selected . "=thread-selected,\\(.*?\\)\n") (gdb-thread-exited . "=thread-exited,\\(.*?\n\\)") (gdb-ignored-notification . "=[-[:alpha:]]+,?\\(.*?\\)\n") (gdb-shell . "\\(\\(?:^.+\n\\)+\\)")))
#@23 Filter GDB/MI output.
(defalias 'gud-gdbmi-marker-filter #[(string) "\203\306	B\nB\203\nGV\203S\n\233\307\241\210\f	P\310\307\307\211 \203t @\311A\f\"\203k\312\224@\313\314\f\"\313\315\f\"\312\225\257B\f\312\211\224O\316\313\312\f\"G\317\"\f\312\225\307OQ\2025 A\211 \2040*\320\321\"\211\307!\211 \203\343 @\211!\211\"A@)\315!8\322!8#$\211%\323=\203\261\324#$\325#\210\202\331%\326=\203\303\324#$\327#\210\202\331%\330=\203\323\331$!\332\230\204\331%$!\210+ A\211 \204\206*\333&\311\334\f\"\210\f\312\225\307O
)\207" [gdb-enable-debug string gdb-debug-log gdb-debug-log-max gud-marker-acc gdb-filter-output recv nil "" string-match 0 match-string 1 2 make-string 32 sort gdb-car< 3 gdb-error gdb-done-or-error error gdb-done done gdb-internals read "No registers.\n" user "^ *" output-record-list gdbmi-record-list gdbmi-record --dolist-tail-- output-record x arg2 arg1 record-type gdb-output-sink] 7 (#$ . 61941)])
(defalias 'gdb-gdb #[(_output-field) "\300\207" [nil] 1])
(defalias 'gdb-shell #[(output-field) "	P\211\207" [output-field gdb-filter-output] 2])
(defalias 'gdb-ignored-notification #[(_output-field) "\300\207" [nil] 1])
(defalias 'gdb-thread-created #[(_output-field) "\300\207" [nil] 1])
#@114 Handle =thread-exited async record: unset `gdb-thread-number'
 if current thread exited and update threads list.
(defalias 'gdb-thread-exited #[(output-field) "\303\304!\305\"\n	\230\203\306\307!\210)\310\207" [output-field thread-id gdb-thread-number bindat-get-field gdb-json-string id gdb-setq-thread-number nil [nil 26376 63829 513615 nil (lambda nil (if (not gdb-pending-triggers) (progn . #1=((gdb-emit-signal gdb-buf-publisher 'update-threads))) (gdb-wait-for-pending . #1#))) nil nil 270000]] 3 (#$ . 63230)])
#@85 Handler for =thread-selected MI output record.

Sets `gdb-thread-number' to new id.
(defalias 'gdb-thread-selected #[(output-field) "\303!\304	\305\"\306\n!\210*\307\207" [output-field result thread-id gdb-json-string bindat-get-field id gdb-setq-thread-number [nil 26376 63829 515113 nil (lambda nil (if (not gdb-pending-triggers) (progn . #1=((gdb-update))) (gdb-wait-for-pending . #1#))) nil nil 295000]] 3 (#$ . 63758)])
(defalias 'gdb-running #[(output-field) "\306\307!\301\"\211\310\230\204	\n\230\203\311)\312\313\314\f\315
#!\210\204(\316\316\317\320\"\207" [output-field thread-id gdb-thread-number gdb-frame-number gdb-inferior-status font-lock-type-face bindat-get-field gdb-json-string "all" nil "running" gdb-force-mode-line-update propertize face t gdb-emit-signal update-threads gdb-non-stop gud-running gdb-active-process gdb-buf-publisher] 6])
(defalias 'gdb-starting #[(_output-field) "\305\306\307\310	#!\210\311\211\312\f\313\"\207" [gdb-inferior-status font-lock-type-face gdb-active-process gud-running gdb-buf-publisher "running" gdb-force-mode-line-update propertize face t gdb-emit-signal update-threads] 6])
#@99 Given the contents of *stopped MI async record, select new
current thread and update GDB buffers.
(defalias 'gdb-stopped #[(output-field) "\306!\307	\302\"\307	\303\"\f\204\310\311
\205\312PP\313\"\210\n\206$\314\315\316\317#!\210\n\320\230\2039\321 !\203v\"\204M\307\322 \323\"\324\230\204v!\325=\204[\n!\235\203o#\230\204v\326\327P!\210\330!\210\202v\326\331\332\"!\210$\203\202%&P%$\204\214'\203\222\333 \210\321$\334\335	\"+\207" [output-field result reason thread-id gdb-register-names gdb-supports-non-stop gdb-json-string bindat-get-field gdb-input "-data-list-register-names" " --thread " gdb-register-names-handler "unknown" gdb-force-mode-line-update propertize face "exited-normally" nil gdb-current-buffer-thread state "stopped" t message "Switched to thread " gdb-setq-thread-number format "Thread %s stopped" gdb-update run-hook-with-args gdb-stopped-functions gdb-inferior-status font-lock-warning-face gdb-active-process gdb-switch-reasons gdb-switch-when-another-stopped gdb-thread-number gdb-first-done-or-error gdb-filter-output gdb-prompt-name gdb-non-stop] 5 (#$ . 64923)])
(defalias 'gdb-internals #[(output-field) "\304	\305\230\203\f\306\202\307	!\310\311\nG\312\n%\210\n)\"\211\207" [gdb-filter-output output-field error-message font-lock-warning-face gdb-concat-output "\"\\n\"" "" read put-text-property 0 face] 8])
(defalias 'gdb-console #[(output-field) "\302\303	!\"\211\207" [gdb-filter-output output-field gdb-concat-output read] 4])
(defalias 'gdb-done-or-error #[(output-field token-number type) "\306\230\203\307\310\n\311=\203 \312\313\314\310O!!\210\310\202 \315\316 \210\317\f!\211?\2061\320
!\321>\203U\204M\204M\204MP\322!\210\310\323\"\205yr\324\325!q\210\326\327!\"A \210)\330\"\211*\207" [token-number gdb-output-sink type output-field gud-comint-buffer proc "" user nil error message read 4 emacs gdb-clear-partial-output get-buffer-process process-status (exit signal) gdb-update gdb-concat-output gdb-get-buffer-create gdb-partial-output-buffer assoc string-to-number assq-delete-all no-proc gdb-first-done-or-error gud-running gdb-filter-output gdb-prompt-name gdb-handler-alist] 6])
(defalias 'gdb-concat-output #[(so-far new) "\303=\203\n	\nP\207\304=\205\305\n!\210	\207" [gdb-output-sink so-far new user emacs gdb-append-to-partial-output] 2])
(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])
#@636 Prepare GDB/MI output in current buffer for parsing with `json-read'.

Field names are wrapped in double quotes and equal signs are
replaced with semicolons.

If FIX-KEY is non-nil, strip all "FIX-KEY=" occurrences from
partial output. This is used to get rid of useless keys in lists
in MI messages, e.g.: [key=.., key=..]. -stack-list-frames and
-break-info are examples of MI commands which issue such
responses.

If FIX-LIST is non-nil, "FIX-LIST={..}" is replaced with
"FIX-LIST=[..]" prior to parsing. This is used to fix broken
-break-info output when it contains breakpoint script field
incompatible with GDB/MI output syntax.
(defalias 'gdb-jsonify-buffer #[(&optional fix-key fix-list) "\212eb\210\203 \212\304\305\306Q\307\310#\203\311\312\307\211\211\313%\210\202	)	\203T\212\304	\314P\307\310#\203S`\315Zb\316 \210`S\212b\210\317\313!\210\320c\210\nb\210\317\313!\210\321c\210+\202%)eb\210\322c\210\304\323\307\310#\203k\311\324\307\211#\210\202Zdb\210\325c)\207" [fix-key fix-list p2 p1 re-search-forward "[\\[,]\\(" "=\\)" nil t replace-match "" 1 "={\"" 2 forward-sexp delete-char "[" "]" "{" "\\([[:alnum:]-_]+\\)=\\({\\|\\[\\|\"\"\\|\".*?[^\\]\"\\)" "\"\\1\":\\2" "}"] 6 (#$ . 67613)])
#@124 Prepare and parse GDB/MI output in current buffer with `json-read'.

FIX-KEY and FIX-LIST work as in `gdb-jsonify-buffer'.
(defalias 'gdb-json-read-buffer #[(&optional fix-key fix-list) "\303	\"\210\212eb\210\304\305 *\207" [fix-key fix-list json-array-type gdb-jsonify-buffer list json-read] 3 (#$ . 68838)])
#@124 Prepare and parse STRING containing GDB/MI output with `json-read'.

FIX-KEY and FIX-LIST work as in `gdb-jsonify-buffer'.
(defalias 'gdb-json-string #[(string &optional fix-key fix-list) "\304\305!rq\210\306\216	c\210\307\n\"+\207" [#1=#:temp-buffer string fix-key fix-list generate-new-buffer " *temp*" ((byte-code "\301!\203\n\302!\210\301\207" [#1# buffer-name kill-buffer] 2)) gdb-json-read-buffer] 3 (#$ . 69157)])
#@117 Prepare and parse gdb-partial-output-buffer with `json-read'.

FIX-KEY and FIX-KEY work as in `gdb-jsonify-buffer'.
(defalias 'gdb-json-partial-output #[(&optional fix-key fix-list) "r\302\303!q\210\304	\")\207" [fix-key fix-list gdb-get-buffer-create gdb-partial-output-buffer gdb-json-read-buffer] 3 (#$ . 69591)])
#@52 Return a pair of LINE beginning and end positions.
(defalias 'gdb-line-posns #[(line) "\302 ZT\303	!\304	!)B\207" [line offset line-number-at-pos line-beginning-position line-end-position] 3 (#$ . 69915)])
#@147 Set VARIABLE marker to point at beginning of LINE.

If current window has no fringes, inverse colors on LINE.

Return position where LINE begins.
(defalias 'gdb-mark-line '(macro . #[(line variable) "\302\303\304\305DD\306B\307	\310BB\311BBBD\207" [line variable save-excursion let* posns gdb-line-posns ((start-posn (car posns)) (end-posn (cdr posns))) set-marker ((copy-marker start-posn)) ((when (not (> (car (window-fringes)) 0)) (put-text-property start-posn end-posn 'font-lock-face '(:inverse-video t))) start-posn)] 6 (#$ . 70130)]))
(defalias 'gdb-pad-string #[(string padding) "\302\303\304!\305Q	\"\207" [padding string format "%" number-to-string "s"] 4])
(byte-code "\301\302\303\304#\210\305\301\302\306\307\310!!#\210)\301\207" [file put gdb-table-column-sizes compiler-macro #[(_cl-whole-arg cl-x) "\301\302\303\304\211\211&\207" [cl-x cl--defsubst-expand (cl-x) (cl-block gdb-table-column-sizes (or (and (memq (aref cl-x 0) cl-struct-gdb-table-tags)) (error "%s accessing a non-%s" 'gdb-table-column-sizes 'gdb-table)) (aref cl-x 1)) nil] 7] "/builddir/build/BUILD/emacs-24.3/lisp/progmodes/gdb-mi.el" compiler-macro-file purecopy file-name-nondirectory] 6)
(defalias 'gdb-table-column-sizes #[(cl-x) "\302H	>\204\303\304\305\306#\210\307H\207" [cl-x cl-struct-gdb-table-tags 0 error "%s accessing a non-%s" gdb-table-column-sizes gdb-table 1] 4])
(byte-code "\301\302\303\304#\210\305\301\302\306\307\310!!#\210)\301\207" [file put gdb-table-rows compiler-macro #[(_cl-whole-arg cl-x) "\301\302\303\304\211\211&\207" [cl-x cl--defsubst-expand (cl-x) (cl-block gdb-table-rows (or (and (memq (aref cl-x 0) cl-struct-gdb-table-tags)) (error "%s accessing a non-%s" 'gdb-table-rows 'gdb-table)) (aref cl-x 2)) nil] 7] "/builddir/build/BUILD/emacs-24.3/lisp/progmodes/gdb-mi.el" compiler-macro-file purecopy file-name-nondirectory] 6)
(defalias 'gdb-table-rows #[(cl-x) "\302H	>\204\303\304\305\306#\210\307H\207" [cl-x cl-struct-gdb-table-tags 0 error "%s accessing a non-%s" gdb-table-rows gdb-table 2] 4])
(byte-code "\301\302\303\304#\210\305\301\302\306\307\310!!#\210)\301\207" [file put gdb-table-row-properties compiler-macro #[(_cl-whole-arg cl-x) "\301\302\303\304\211\211&\207" [cl-x cl--defsubst-expand (cl-x) (cl-block gdb-table-row-properties (or (and (memq (aref cl-x 0) cl-struct-gdb-table-tags)) (error "%s accessing a non-%s" 'gdb-table-row-properties 'gdb-table)) (aref cl-x 3)) nil] 7] "/builddir/build/BUILD/emacs-24.3/lisp/progmodes/gdb-mi.el" compiler-macro-file purecopy file-name-nondirectory] 6)
(defalias 'gdb-table-row-properties #[(cl-x) "\302H	>\204\303\304\305\306#\210\307H\207" [cl-x cl-struct-gdb-table-tags 0 error "%s accessing a non-%s" gdb-table-row-properties gdb-table 3] 4])
(byte-code "\301\302\303\304#\210\305\301\302\306\307\310!!#\210)\301\207" [file put gdb-table-right-align compiler-macro #[(_cl-whole-arg cl-x) "\301\302\303\304\211\211&\207" [cl-x cl--defsubst-expand (cl-x) (cl-block gdb-table-right-align (or (and (memq (aref cl-x 0) cl-struct-gdb-table-tags)) (error "%s accessing a non-%s" 'gdb-table-right-align 'gdb-table)) (aref cl-x 4)) nil] 7] "/builddir/build/BUILD/emacs-24.3/lisp/progmodes/gdb-mi.el" compiler-macro-file purecopy file-name-nondirectory] 6)
(defalias 'gdb-table-right-align #[(cl-x) "\302H	>\204\303\304\305\306#\210\307H\207" [cl-x cl-struct-gdb-table-tags 0 error "%s accessing a non-%s" gdb-table-right-align gdb-table 4] 4])
(byte-code "\301\302\303\304#\210\305\301\302\306\307\310!!#\210)\301\207" [file put gdb-table-p compiler-macro #[(_cl-whole-arg cl-x) "\301\302\303\304\211\211&\207" [cl-x cl--defsubst-expand (cl-x) (cl-block gdb-table-p (and (vectorp cl-x) (>= (length cl-x) 5) (memq (aref cl-x 0) cl-struct-gdb-table-tags) t)) nil] 7] "/builddir/build/BUILD/emacs-24.3/lisp/progmodes/gdb-mi.el" compiler-macro-file purecopy file-name-nondirectory] 6)
(defalias 'gdb-table-p #[(cl-x) "\302!\205G\303Y\205\304H	>\205\305\207" [cl-x cl-struct-gdb-table-tags vectorp 5 0 t] 2])
(defalias 'copy-gdb-table #[(x) "\301!\207" [x copy-sequence] 2])
(byte-code "\301\302\303\304#\210\305\301\302\306\307\310!!#\210)\301\207" [file put make-gdb-table compiler-macro #[(cl-whole &rest #1=#:--cl-rest--) "\306>A@\307>A@\310>A@\311>A@
\203D
@\312>\203-
AA\211\202\313>A@\203;\314\211\202\315\316
@\"\210\202)\317\320\321\314\314	\n\f&	,\207" [#1# column-sizes rows row-properties right-align #:--cl-keys-- :column-sizes :rows :row-properties :right-align (:column-sizes :rows :row-properties :right-align :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:column-sizes :rows :row-properties :right-align)" cl--defsubst-expand (column-sizes rows row-properties right-align) (cl-block make-gdb-table (vector 'cl-struct-gdb-table column-sizes rows row-properties right-align)) cl-whole] 11 "\n\n(fn CL-WHOLE &cl-quote &key COLUMN-SIZES ROWS ROW-PROPERTIES RIGHT-ALIGN)"] "/builddir/build/BUILD/emacs-24.3/lisp/progmodes/gdb-mi.el" compiler-macro-file purecopy file-name-nondirectory] 6)
#@58 

(fn &key COLUMN-SIZES ROWS ROW-PROPERTIES RIGHT-ALIGN)
(defalias 'make-gdb-table #[(&rest #1=#:--cl-rest--) "\306>A@\307>A@\310>A@\311>A@
\203D
@\312>\203-
AA\211\202\313>A@\203;\314\211\202\315\316
@\"\210\202)\317\320	\n\f%,\207" [#1# column-sizes rows row-properties right-align #2=#:--cl-keys-- :column-sizes :rows :row-properties :right-align (:column-sizes :rows :row-properties :right-align :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:column-sizes :rows :row-properties :right-align)" vector cl-struct-gdb-table] 7 (#$ . 75218)])
(byte-code "\301C\302\303\304\305#\210\302\303\306\307#\210\302\303\310\311#\210\302\303\312\313#\210\302\314\315\313#\210\302\316\315\313#\210\302\317\315\320#\210\302\321\315\313#\210\302\322\315\313#\210\302\323\315\313#\210\302\324\315\313#\207" [cl-struct-gdb-table-tags cl-struct-gdb-table put gdb-table cl-struct-slots ((cl-tag-slot) (column-sizes nil) (rows nil) (row-properties nil) (right-align nil)) cl-struct-type (vector nil) cl-struct-include nil cl-struct-print t make-gdb-table side-effect-free copy-gdb-table gdb-table-p error-free gdb-table-right-align gdb-table-row-properties gdb-table-rows gdb-table-column-sizes] 4)
#@202 Apply FUNCTION to each element of SEQS, and make a list of the results.
If there are several SEQS, FUNCTION is called with that many
arguments, and mapping stops as soon as the shortest list runs
out.
(defalias 'gdb-mapcar* #[(function &rest seqs) "\302\303\304\305\"\"\304\306\307\310	S\"\")\207" [seqs shortest apply min mapcar length #[(i) "\302\303\304	\"\"\207" [function seqs apply mapcar #[(seq) "	8\207" [i seq] 2]] 5] number-sequence 0] 5 (#$ . 76463)])
#@148 Add ROW of string to TABLE and recalculate column sizes.

When non-nil, PROPERTIES will be added to the whole row when
calling `gdb-table-string'.
(defalias 'gdb-table-add-row #[(table row &optional properties) "\306H	>\204\307\310\311\312#\210\313H\306H	>\204\307\310\314\312#\210\315H\306H	>\2040\307\310\316\312#\210\317H\306H	>\204A\307\310\320\312#\210\321H\204h\306H	>\204Z\307\310\316\312#\210\211\317\322G\306\"I\210)\306H	>\204v\307\310\311\312#\210\211\313\323
C\"I\210)\306H	>\204\222\307\310\314\312#\210\211\315\323\fC\"I\210)\306H	>\204\256\307\310\316\312#\210\211\317\324\325\306H	>\204\303\307\310\316\312#\210\317H#I\210)\306H	>\204\332\307\310\320\312#\210\321H?\205\366\326\306H	>\204\360\307\310\316\312#\210\317H!\306\240,\207" [table cl-struct-gdb-table-tags right-align column-sizes row-properties rows 0 error "%s accessing a non-%s" gdb-table-rows gdb-table 2 gdb-table-row-properties 3 gdb-table-column-sizes 1 gdb-table-right-align 4 make-list append gdb-mapcar* #[(x s) "\304!\305	\206	\306!]\203\n\202\n[)\207" [x s new-x right-align abs string-width ""] 3] last #1=#:v row #2=#:v #3=#:v properties #4=#:v] 9 (#$ . 76937)])
#@59 Return TABLE as a string with columns separated with SEP.
(defalias 'gdb-table-string #[(table &optional sep) "\303H	>\204\304\305\306\307#\210\310H\311\312\313\314\303H	>\204$\304\305\315\307#\210\316H\303H	>\2045\304\305\317\307#\210\320H#\321#)\207" [table cl-struct-gdb-table-tags column-sizes 0 error "%s accessing a non-%s" gdb-table-column-sizes gdb-table 1 mapconcat identity gdb-mapcar* #[(row properties) "\304\305\306\307\310\311	#\n##\207" [row column-sizes sep properties apply propertize mapconcat identity gdb-mapcar* #[(s x) "\302	\"\207" [s x gdb-pad-string] 3]] 8] gdb-table-rows 2 gdb-table-row-properties 3 "\n"] 9 (#$ . 78163)])
#@45 Return a list of FIELDS values from STRUCT.
(defalias 'gdb-get-many-fields #[(struct &rest fields) "\305	\305\211\203@\306\f\n\"BA\211\204\n*\237)\207" [values fields field --dolist-tail-- struct nil bindat-get-field] 4 (#$ . 78833)])
#@869 Define a trigger TRIGGER-NAME which sends GDB-COMMAND and sets
HANDLER-NAME as its handler. HANDLER-NAME is bound to current
buffer with `gdb-bind-function-to-buffer'.

If SIGNAL-LIST is non-nil, GDB-COMMAND is sent only when the
defined trigger is called with an argument from SIGNAL-LIST. It's
not recommended to define triggers with empty SIGNAL-LIST.
Normally triggers should respond at least to 'update signal.

Normally the trigger defined by this command must be called from
the buffer where HANDLER-NAME must work. This should be done so
that buffer-local thread number may be used in GDB-COMMAND (by
calling `gdb-current-context-command').
`gdb-bind-function-to-buffer' is used to achieve this, see
`gdb-get-buffer-create'.

Triggers defined by this command are meant to be used as a
trigger argument when describing buffer types with
`gdb-set-buffer-rules'.
(defalias 'def-gdb-auto-update-trigger '(macro . #[(trigger-name gdb-command handler-name &optional signal-list) "\304\305\306\307\310	D\311\312	EE\306\310\313\314\315\316DEDD\317\n\320\316D\321BBE\322\314\323\316DEDFEF\207" [trigger-name signal-list gdb-command handler-name defun (&optional signal) when or not memq signal gdb-pending-p cons (current-buffer) quote gdb-input gdb-bind-function-to-buffer ((current-buffer)) gdb-add-pending (current-buffer)] 13 (#$ . 79088)]))
#@370 Define a handler HANDLER-NAME for TRIGGER-NAME with CUSTOM-DEFUN.

Handlers are normally called from the buffers they put output in.

Delete ((current-buffer) . TRIGGER-NAME) from
`gdb-pending-triggers', erase current buffer and evaluate
CUSTOM-DEFUN. Then `gdb-update-buffer-name' is called.

If NOPRESERVE is non-nil, window point is not restored after CUSTOM-DEFUN.
(defalias 'def-gdb-auto-update-handler '(macro . #[(handler-name trigger-name custom-defun &optional nopreserve) "\304\305\306\307\310\311	DED\312\313\314\nC\315?\205\316\257\257\207" [handler-name trigger-name custom-defun nopreserve defun nil gdb-delete-pending cons (current-buffer) quote let* ((buffer-read-only nil) (window (get-buffer-window (current-buffer) 0)) (start (window-start window)) (p (window-point window))) (erase-buffer) (gdb-update-buffer-name) (set-window-point window p)] 10 (#$ . 80444)]))
#@211 Define trigger and handler.

TRIGGER-NAME trigger is defined to send GDB-COMMAND. See
`def-gdb-auto-update-trigger'.

HANDLER-NAME handler uses customization of CUSTOM-DEFUN. See
`def-gdb-auto-update-handler'.
(defalias 'def-gdb-trigger-and-handler '(macro . #[(trigger-name gdb-command handler-name custom-defun &optional signal-list) "\305\306	\n\257\307\n\fFE\207" [trigger-name gdb-command handler-name signal-list custom-defun progn def-gdb-auto-update-trigger def-gdb-auto-update-handler] 6 (#$ . 81340)]))
(defalias 'gdb-invalidate-breakpoints #[(&optional signal) "\302>\205p\303B	\235?\205\304\305\306\307p\"\"\210p\303B	B\211\207" [signal gdb-pending-triggers (start update) gdb-invalidate-breakpoints gdb-input "-break-list" gdb-bind-function-to-buffer gdb-breakpoints-list-handler] 5])
(defalias 'gdb-breakpoints-list-handler #[nil "\305p\306B\"\307\310p\311\"\312\n!\313\n!\314 \210\315 \210\316 \210\317\n\f\",\207" [gdb-pending-triggers buffer-read-only window start p delete gdb-invalidate-breakpoints nil get-buffer-window 0 window-start window-point erase-buffer gdb-breakpoints-list-handler-custom gdb-update-buffer-name set-window-point] 3])
(gdb-set-buffer-rules 'gdb-breakpoints-buffer 'gdb-breakpoints-buffer-name 'gdb-breakpoints-mode 'gdb-invalidate-breakpoints)
(defalias 'gdb-breakpoints-list-handler-custom #[nil "\306\307\310\311\"\312\313#\314\315\316\211\211\211%\316\317\320\"\210	\316\211\203\302\f@\321\302\306\322\"B\"\210\306\323\"\306\324\"\306\325\"\306\305\"\317\306\322\"
\206O\326\306\327\"\206W\326\306\330\"\211+\331\230\203l\332\331\333,#\202r\332\334\333-#)\306\335\"\306\336\"\206\326
\203\221\337\340
\"\203\221\306\341\"\202\253\206\253\206\253\342\332\206\243\343\333.#\344!Q\257\345\346D\205\267\347\"#\210,\fA\211\204 *\350\351\"c\210\352 *\207" [table breakpoints-list gdb-breakpoints-list breakpoint --dolist-tail-- type bindat-get-field gdb-json-partial-output "bkpt" "script" BreakpointTable body vector cl-struct-gdb-table nil gdb-table-add-row ("Num" "Type" "Disp" "Enb" "Addr" "Hits" "What") add-to-list number at pending func "" disp enabled "y" propertize font-lock-face "n" addr times string-match ".*watchpoint" what "in " "unknown" gdb-frame-location append gdb-breakpoint (help-echo "mouse-2, RET: visit breakpoint" mouse-face highlight) gdb-table-string " " gdb-place-breakpoints flag font-lock-warning-face font-lock-comment-face font-lock-function-name-face] 14])
(defalias 'gdb-place-breakpoints #[nil "\306 \307\211\203+	@rq\210\n\310=\203#\311\312\313 \"\204#\314ed\"\210)	A\211\204	*\307\211\205\273	@\211A\315\f\305\"\211\203\262\315\f\316\"\315\f\317\"\315\f\320\"\"#\211\203`\321!\204i\322\"$\"A\203u\323\230\203\231\315\f\324\"\211\203\261\325\326\327Q\330\"\210\325\331\332\307\333\"
#FE\"\210\202\261r\334\335\"q\210\336 \210\337#\340\230\"\341
!#\210)+*	A\211\2044\307*\207" [buffer --dolist-tail-- gud-minor-mode gdb-breakpoints-list breakpoint line buffer-list nil gdbmi string-match "\\` ?\\*.+\\*\\'" buffer-name gdb-remove-breakpoint-icons bindat-get-field fullname enabled number file-exists-p assoc "File not found" file gdb-input "list " ":1" ignore "-file-list-exec-source-file" lambda gdb-get-location find-file-noselect nowarn gdb-init-buffer gdb-put-breakpoint-icon "y" string-to-number bptno flag gdb-location-alist] 9])
(defvar gdb-source-file-regexp "fullname=\"\\(.*?\\)\"")
#@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 "\305\306\307#\203\310	\311B\n\"\210\2023	\312\313!B\nB\314 \210\315	\n\"\204.	\311B\nB\316\317!\210\320\321\306\"\210r\322\312\313!!q\210\323 \210\324\325=	\326\f!#)\207" [gdb-source-file-regexp bptno gdb-location-alist flag line re-search-forward nil t delete "File not found" match-string 1 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 gdb-init-buffer gdb-put-breakpoint-icon 121 string-to-number] 5)] 2 (#$ . 84839)])
(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 "\303!\205\"\205\"\304\305\"\306=\205\"	\n\235\205\"r\307	!q\210\310 )\207" [gud-comint-buffer buffer-file-name gdb-source-file-list buffer-name buffer-local-value gud-minor-mode gdbmi find-buffer-visiting gdb-init-buffer] 3 (#$ . 85669)])
#@117 Set/clear breakpoint in left fringe/margin at mouse click.
If not in a source or disassembly buffer just set point.
(defalias 'gdb-mouse-set-clear-breakpoint #[(event) "\304!\210\305!\306	\211@)!r\307\216\310@\311\"\210\312 \204$\313\314!\203\242	\315\n8\206=\nA@:\203:\nA@@\202=\nA@)\247\203\242\212	\315\n8\206\\\nA@:\203Y\nA@@\202\\\nA@)b\210	\211\316\n8)\206p\n\317\n8))\204\226\320	\315\n8\206\216\nA@:\203\213\nA@@\202\216\nA@)!@\321=\203\235\322\323!\210\202\241\324\323!\210)\325	!,\207" [event posn position save-selected-window--state mouse-minibuffer-check event-end internal--before-with-selected-window ((internal--after-with-selected-window save-selected-window--state)) select-window norecord buffer-file-name derived-mode-p gdb-disassembly-mode 5 7 4 fringe-bitmaps-at-pos breakpoint gud-remove nil gud-break posn-set-point] 4 (#$ . 86046) "e"])
#@60 Enable/disable breakpoint in left margin with mouse click.
(defalias 'gdb-mouse-toggle-breakpoint-margin #[(event) "\305!\210\306!\211\307\n8\206!\nA@:\203\nA@@\202!\nA@)\247\205\216\310	\211@)!r\311\216\312@\313\"\210\212	\307\n8\206Q\nA@:\203N\nA@@\202Q\nA@)b\210	\211\314\n8)\206e\n\315\n8))\205\215\316\317\320\321	\315\n8)@#\317\320\322	\315\n8)@#\203\210\323\202\211\324\fP)!,)\207" [event posn position save-selected-window--state bptno mouse-minibuffer-check event-end 5 internal--before-with-selected-window ((internal--after-with-selected-window save-selected-window--state)) select-window norecord 7 4 gud-basic-call get-text-property 0 gdb-bptno gdb-enabled "-break-disable " "-break-enable "] 7 (#$ . 86942) "e"])
#@60 Enable/disable breakpoint in left fringe with mouse click.
(defalias 'gdb-mouse-toggle-breakpoint-fringe #[(event) "\306!\210\307!\211\310\n8\206!\nA@:\203\nA@@\202!\nA@)\311\247\205\212\312	\211@)!r\313\216\314
@\315\"\210r\316\317 !q\210b\210\320\211\"\311\211\203n@\321\322\"\203e\321\323\"A\211\204R*\f;\205\211\324\325\326\327\f#\203\201\330\202\202\331\325\326\332\f#P!,+\207" [event posn position pos obj save-selected-window--state mouse-minibuffer-check event-end 5 nil internal--before-with-selected-window ((internal--after-with-selected-window save-selected-window--state)) select-window norecord window-buffer selected-window overlays-in overlay-get put-break before-string gud-basic-call get-text-property 0 gdb-enabled "-break-disable " "-break-enable " gdb-bptno overlay --dolist-tail--] 7 (#$ . 87701) "e"])
(defalias 'gdb-breakpoints-buffer-name #[nil "\300\301 \302Q\207" ["*breakpoints of " gdb-get-target-string "*"] 3])
#@26 Display GDB breakpoints.
(defalias 'gdb-display-breakpoints-buffer #[(&optional thread) "\301\302\303\"!\207" [thread gdb-display-buffer gdb-get-buffer-create gdb-breakpoints-buffer] 4 (#$ . 88688) nil])
#@43 Display GDB breakpoints in another frame.
(defalias 'gdb-frame-breakpoints-buffer #[(&optional thread) "\302\303\304\"	\"\207" [thread gdb-display-buffer-other-frame-action display-buffer gdb-get-buffer-create gdb-breakpoints-buffer] 4 (#$ . 88899) nil])
(defvar gdb-breakpoints-mode-map (byte-code "\302 \302\303!\304\305\306#\210\304\307\310#\210\304\311\312#\210\304\313\314#\210\315	!\210\304	\316\303B#\210\304	\317\320#\210\304	\321\322#\210\304	\323\324#\210\304	\325\326#\210\304	\327\330#\210\304	\331\326#\210\304	\332\333#\210	*\207" [menu map 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 "	" #[nil "\300\301\302!\303\"\207" [gdb-set-window-buffer gdb-get-buffer-create gdb-threads-buffer t] 3 nil nil] [mouse-2] [follow-link] mouse-face] 5))
#@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 (#$ . 89983) nil])
#@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 (#$ . 90201)])
(defalias 'gdb-propertize-header '(macro . #[(name buffer help-echo mouse-face face) "\305\306	\307\310\nD\311\310D\312\313\314\315\316\317\320\321\322\323\310\fDD\324BBEFE\257\n\207" [name help-echo mouse-face face buffer propertize 'help-echo 'mouse-face quote 'face 'local-map gdb-make-header-line-mouse-map 'mouse-1 lambda (event) (interactive "e") save-selected-window (select-window (posn-window (event-start event))) gdb-set-window-buffer gdb-get-buffer-create (t)] 20]))
(defalias 'gdb-threads-buffer-name #[nil "\300\301 \302Q\207" ["*threads of " gdb-get-target-string "*"] 3])
#@22 Display GDB threads.
(defalias 'gdb-display-threads-buffer #[(&optional thread) "\301\302\303\"!\207" [thread gdb-display-buffer gdb-get-buffer-create gdb-threads-buffer] 4 (#$ . 91214) nil])
#@39 Display GDB threads in another frame.
(defalias 'gdb-frame-threads-buffer #[(&optional thread) "\302\303\304\"	\"\207" [thread gdb-display-buffer-other-frame-action display-buffer gdb-get-buffer-create gdb-threads-buffer] 4 (#$ . 91413) nil])
(defalias 'gdb-invalidate-threads #[(&optional signal) "\302>\205 p\303B	\235?\205 \304\305\306!\307\310p\"\"\210p\303B	B\211\207" [signal gdb-pending-triggers (start update update-threads) gdb-invalidate-threads gdb-input gdb-current-context-command "-thread-info" gdb-bind-function-to-buffer gdb-thread-list-handler] 5])
(defalias 'gdb-thread-list-handler #[nil "\305p\306B\"\307\310p\311\"\312\n!\313\n!\314 \210\315 \210\316 \210\317\n\f\",\207" [gdb-pending-triggers buffer-read-only window start p delete gdb-invalidate-threads nil get-buffer-window 0 window-start window-point erase-buffer gdb-thread-list-handler-custom gdb-update-buffer-name set-window-point] 3])
(gdb-set-buffer-rules 'gdb-threads-buffer 'gdb-threads-buffer-name 'gdb-threads-mode 'gdb-invalidate-threads)
#@48 Font lock keywords used in `gdb-threads-mode'.
(defvar gdb-threads-font-lock-keywords '(("in \\([^ ]+\\)" (1 font-lock-function-name-face)) (" \\(stopped\\)" (1 font-lock-warning-face)) (" \\(running\\)" (1 font-lock-string-face)) ("\\(\\(\\sw\\|[_.]\\)+\\)=" (1 font-lock-variable-name-face))) (#$ . 92456))
(defvar gdb-threads-mode-map (byte-code "\301 \302\303\304#\210\302\305\306#\210\302\307\310#\210\302\311\312#\210\302\313\314#\210\302\315\316#\210\302\317\320#\210\302\321\322#\210\302\323\324#\210\302\325\326#\210\302\327\330#\210\302\331\332#\210\302\333\334#\210\302\335\304#\210\302\336\337#\210)\207" [map make-sparse-keymap define-key "
" gdb-select-thread "f" gdb-display-stack-for-thread "F" gdb-frame-stack-for-thread "l" gdb-display-locals-for-thread "L" gdb-frame-locals-for-thread "r" gdb-display-registers-for-thread "R" gdb-frame-registers-for-thread "d" gdb-display-disassembly-for-thread "D" gdb-frame-disassembly-for-thread "i" gdb-interrupt-thread "c" gdb-continue-thread "s" gdb-step-thread "	" #[nil "\300\301\302!\303\"\207" [gdb-set-window-buffer gdb-get-buffer-create gdb-breakpoints-buffer t] 3 nil nil] [mouse-2] [follow-link] mouse-face] 4))
(defvar gdb-threads-header (byte-code "\300\301\302\303\304\305\306\307\310\311\312\313\"&	\314\300\315\302\316\304\316\306\317\310\311\312\320\"&	E\207" [propertize "Breakpoints" help-echo "mouse-1: select" mouse-face mode-line-highlight face mode-line-inactive local-map gdb-make-header-line-mouse-map mouse-1 #[#1=(event) "\303 r\304\216\305\306	!\211@)!\210\307\310\311!\312\"+\207" [save-selected-window--state event position internal--before-save-selected-window ((internal--after-save-selected-window save-selected-window--state)) select-window event-start gdb-set-window-buffer gdb-get-buffer-create gdb-breakpoints-buffer t] 4 nil #2="e"] " " "Threads" nil mode-line #[#1# "\303 r\304\216\305\306	!\211@)!\210\307\310\311!\312\"+\207" [save-selected-window--state event position internal--before-save-selected-window ((internal--after-save-selected-window save-selected-window--state)) select-window event-start gdb-set-window-buffer gdb-get-buffer-create gdb-threads-buffer t] 4 nil #2#]] 14))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\305\306!\204\302\306\307\310#\210\300\207" [gdb-threads-mode-hook variable-documentation put purecopy "Hook run when entering Threads mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" boundp gdb-threads-mode-map definition-name gdb-threads-mode] 5)
(defvar gdb-threads-mode-map (make-sparse-keymap))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\305\306!\204\302\306\307\310#\210\300\207" [gdb-threads-mode-map variable-documentation put purecopy "Keymap for `gdb-threads-mode'." boundp gdb-threads-mode-syntax-table definition-name gdb-threads-mode] 5)
(defvar gdb-threads-mode-syntax-table (make-syntax-table))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [gdb-threads-mode-syntax-table variable-documentation put purecopy "Syntax table for `gdb-threads-mode'." gdb-threads-mode-abbrev-table definition-name gdb-threads-mode] 5)
(defvar gdb-threads-mode-abbrev-table (progn (define-abbrev-table 'gdb-threads-mode-abbrev-table nil) gdb-threads-mode-abbrev-table))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [gdb-threads-mode-abbrev-table variable-documentation put purecopy "Abbrev table for `gdb-threads-mode'." gdb-threads-mode derived-mode-parent gdb-parent-mode] 5)
#@220 Major mode for GDB threads.

In addition to any hooks its parent mode `gdb-parent-mode' might have run,
this mode runs the hook `gdb-threads-mode-hook', as the final step
during initialization.

\{gdb-threads-mode-map}
(defalias 'gdb-threads-mode #[nil "\306\300!\210\307\310 \210\311\312\310\313N\203\314\311\313\310\313N#\210\315!\204'\316\317 \"\210\320\f!\211\2036
\321 =\203<\322\f\323 \"\210)\324!\325\"\204V!\"=\204V\326!\325\"C#\210\327!\210\330\f!\210!\"\331 \332\333\334\"\210#$\306\335!\210\336)\337\340!\207" [delay-mode-hooks major-mode mode-name gdb-threads-mode-map gdb-threads-mode-syntax-table parent make-local-variable t gdb-parent-mode gdb-threads-mode "Threads" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table make-marker add-to-list overlay-arrow-variable-list gdb-thread-position font-lock-defaults (gdb-threads-font-lock-keywords) run-mode-hooks gdb-threads-mode-hook gdb-threads-mode-abbrev-table local-abbrev-table gdb-threads-header header-line-format] 6 (#$ . 96052) nil])
(defalias 'gdb-thread-list-handler-custom #[nil "\306\307 \310\"\311\312\313\211\211\211%\313\313\314\2111\313\211\223\210\315\n!\3132\2113\203\3373@2\3062\316\"\317\2324\320\303\3062\321\"2B\"\2104\203M\fT\202P
T\322	\3062\321\"5\203f\3062\323\"\324P\202g\325\3062\316\"4\204\271\326\3062\327\330#6\203\222\331\3062\327\332#\333\334\335#)\336Q\202\223\3257\203\242\337\3062\327\"!\202\243\3258\203\263\340\3062\327\341#P\202\264\325\260\202\272\325QD\3422\343\344\345\346\257#\210)9\3062\321\"\230\203\326G3A\2113\204(*\347	\324\"c\210\203\212\350!\211:@;:A<1\351;!\313\223\210\352 @\314V\204\353;<\354\355$\210;\210,+\356 \210\357=\360\"\207" [marked-line table threads-list gdb-threads-list gdb-running-threads-count gdb-stopped-threads-count bindat-get-field gdb-json-partial-output threads vector cl-struct-gdb-table nil 0 reverse state "running" add-to-list id gdb-table-add-row target-id " " "" " in " frame func " (" args mapconcat #[(arg) "\301\302\303\304\305\306##\207" [arg apply format "%s=%s" gdb-get-many-fields name value] 7] "," ")" gdb-frame-location " at " addr gdb-thread mouse-face highlight help-echo "mouse-2, RET: select thread" gdb-table-string gdb-line-posns copy-marker window-fringes put-text-property font-lock-face (:inverse-video t) gdb-update-gud-running gdb-emit-signal update-disassembly gdb-thread-position thread --dolist-tail-- running gdb-thread-buffer-verbose-names gdb-thread-buffer-arguments gdb-thread-buffer-locations gdb-thread-buffer-addresses gdb-thread-number posns start-posn end-posn gdb-buf-publisher] 15])
#@237 Define a NAME command which will act upon thread on the current line.

CUSTOM-DEFUN may use locally bound `thread' variable, which will
be the value of 'gdb-thread property of the current line. If
'gdb-thread is nil, error is signaled.
(defalias 'def-gdb-thread-buffer-command '(macro . #[(name custom-defun &optional doc) "\303\304	\205	\305\306\307\310\311\312\313\314\n\315BBBEE\257\207" [name doc custom-defun defun (&optional event) (interactive (list last-input-event)) (if event (posn-set-point (event-end event))) save-excursion (beginning-of-line) let ((thread (get-text-property (point) 'gdb-thread))) if thread ((error "Not recognized as thread line"))] 14 (#$ . 98885)]))
#@85 Define a NAME which will call BUFFER-COMMAND with id of thread
on the current line.
(defalias 'def-gdb-thread-buffer-simple-command '(macro . #[(name buffer-command &optional doc) "\303	\304B\nF\207" [name buffer-command doc def-gdb-thread-buffer-command ((bindat-get-field thread 'id))] 4 (#$ . 99579)]))
#@54 Select the thread at current line of threads buffer.
(defalias 'gdb-select-thread #[(&optional event) "\203\n\303\304!!\210\212\305 \210\306`\307\"\211\203-\310	\311\"\312\n!\210\313\314\nP\315\"\210\316 )\2020\317\320!*\207" [event thread new-id posn-set-point event-end beginning-of-line get-text-property gdb-thread bindat-get-field id gdb-setq-thread-number gdb-input "-thread-select " ignore gdb-update error "Not recognized as thread line"] 4 (#$ . 99892) (list last-input-event)])
#@54 Display stack buffer for the thread at current line.
(defalias 'gdb-display-stack-for-thread #[(&optional event) "\203\n\302\303!!\210\212\304 \210\305`\306\"\211\203 \307\310	\311\"!\202#\312\313!*\207" [event thread posn-set-point event-end beginning-of-line get-text-property gdb-thread gdb-preemptively-display-stack-buffer bindat-get-field id error "Not recognized as thread line"] 5 (#$ . 100393) (list last-input-event)])
#@55 Display locals buffer for the thread at current line.
(defalias 'gdb-display-locals-for-thread #[(&optional event) "\203\n\302\303!!\210\212\304 \210\305`\306\"\211\203 \307\310	\311\"!\202#\312\313!*\207" [event thread posn-set-point event-end beginning-of-line get-text-property gdb-thread gdb-preemptively-display-locals-buffer bindat-get-field id error "Not recognized as thread line"] 5 (#$ . 100834) (list last-input-event)])
#@58 Display registers buffer for the thread at current line.
(defalias 'gdb-display-registers-for-thread #[(&optional event) "\203\n\302\303!!\210\212\304 \210\305`\306\"\211\203 \307\310	\311\"!\202#\312\313!*\207" [event thread posn-set-point event-end beginning-of-line get-text-property gdb-thread gdb-preemptively-display-registers-buffer bindat-get-field id error "Not recognized as thread line"] 5 (#$ . 101278) (list last-input-event)])
#@60 Display disassembly buffer for the thread at current line.
(defalias 'gdb-display-disassembly-for-thread #[(&optional event) "\203\n\302\303!!\210\212\304 \210\305`\306\"\211\203 \307\310	\311\"!\202#\312\313!*\207" [event thread posn-set-point event-end beginning-of-line get-text-property gdb-thread gdb-preemptively-display-disassembly-buffer bindat-get-field id error "Not recognized as thread line"] 5 (#$ . 101731) (list last-input-event)])
#@69 Display another frame with stack buffer for thread at current line.
(defalias 'gdb-frame-stack-for-thread #[(&optional event) "\203\n\302\303!!\210\212\304 \210\305`\306\"\211\203 \307\310	\311\"!\202#\312\313!*\207" [event thread posn-set-point event-end beginning-of-line get-text-property gdb-thread gdb-frame-stack-buffer bindat-get-field id error "Not recognized as thread line"] 5 (#$ . 102190) (list last-input-event)])
#@70 Display another frame with locals buffer for thread at current line.
(defalias 'gdb-frame-locals-for-thread #[(&optional event) "\203\n\302\303!!\210\212\304 \210\305`\306\"\211\203 \307\310	\311\"!\202#\312\313!*\207" [event thread posn-set-point event-end beginning-of-line get-text-property gdb-thread gdb-frame-locals-buffer bindat-get-field id error "Not recognized as thread line"] 5 (#$ . 102629) (list last-input-event)])
#@77 Display another frame with registers buffer for the thread at current line.
(defalias 'gdb-frame-registers-for-thread #[(&optional event) "\203\n\302\303!!\210\212\304 \210\305`\306\"\211\203 \307\310	\311\"!\202#\312\313!*\207" [event thread posn-set-point event-end beginning-of-line get-text-property gdb-thread gdb-frame-registers-buffer bindat-get-field id error "Not recognized as thread line"] 5 (#$ . 103071) (list last-input-event)])
#@79 Display another frame with disassembly buffer for the thread at current line.
(defalias 'gdb-frame-disassembly-for-thread #[(&optional event) "\203\n\302\303!!\210\212\304 \210\305`\306\"\211\203 \307\310	\311\"!\202#\312\313!*\207" [event thread posn-set-point event-end beginning-of-line get-text-property gdb-thread gdb-frame-disassembly-buffer bindat-get-field id error "Not recognized as thread line"] 5 (#$ . 103526) (list last-input-event)])
#@122 Define a NAME which will execute GUD-COMMAND with
`gdb-thread-number' locally bound to id of thread on the current
line.
(defalias 'def-gdb-thread-buffer-gud-command '(macro . #[(name gud-command &optional doc) "\303\304\305\306\307\310\311	DDE\312BBB\nF\207" [name gud-command doc def-gdb-thread-buffer-command if gdb-non-stop let ((gdb-thread-number (bindat-get-field thread 'id)) (gdb-gud-control-all-threads nil)) call-interactively function ((error "Available in non-stop mode only, customize `gdb-non-stop-setting'"))] 9 (#$ . 103988)]))
#@35 Interrupt thread at current line.
(defalias 'gdb-interrupt-thread #[(&optional event) "\203\n\305\306!!\210\212\307 \210\310`\311\"\211\203/\n\203)\312	\313\"\314\315\316!*\2022\317\320!\2022\317\321!*\207" [event thread gdb-non-stop gdb-gud-control-all-threads gdb-thread-number posn-set-point event-end beginning-of-line get-text-property gdb-thread bindat-get-field id nil call-interactively gud-stop-subjob error "Available in non-stop mode only, customize `gdb-non-stop-setting'" "Not recognized as thread line"] 4 (#$ . 104539) (list last-input-event)])
#@34 Continue thread at current line.
(defalias 'gdb-continue-thread #[(&optional event) "\203\n\305\306!!\210\212\307 \210\310`\311\"\211\203/\n\203)\312	\313\"\314\315\316!*\2022\317\320!\2022\317\321!*\207" [event thread gdb-non-stop gdb-gud-control-all-threads gdb-thread-number posn-set-point event-end beginning-of-line get-text-property gdb-thread bindat-get-field id nil call-interactively gud-cont error "Available in non-stop mode only, customize `gdb-non-stop-setting'" "Not recognized as thread line"] 4 (#$ . 105115) (list last-input-event)])
#@30 Step thread at current line.
(defalias 'gdb-step-thread #[(&optional event) "\203\n\305\306!!\210\212\307 \210\310`\311\"\211\203/\n\203)\312	\313\"\314\315\316!*\2022\317\320!\2022\317\321!*\207" [event thread gdb-non-stop gdb-gud-control-all-threads gdb-thread-number posn-set-point event-end beginning-of-line get-text-property gdb-thread bindat-get-field id nil call-interactively gud-step error "Available in non-stop mode only, customize `gdb-non-stop-setting'" "Not recognized as thread line"] 4 (#$ . 105682) (list last-input-event)])
(byte-code "\300\301\302\303\304\305\306\307\310\311&	\210\300\312\313\314\304\305\306\307\310\311&	\210\300\315\316\317\304\320\306\307\310\321&	\210\300\322\313\323\304\324\306\307\310\311&	\207" [custom-declare-variable gdb-memory-rows 8 "Number of data rows in memory window." :type integer :group gud :version "23.2" gdb-memory-columns 4 "Number of data columns in memory window." gdb-memory-format "x" "Display format of data items in memory window." (choice (const :tag "Hexadecimal" "x") (const :tag "Signed decimal" "d") (const :tag "Unsigned decimal" "u") (const :tag "Octal" "o") (const :tag "Binary" "t")) "22.1" gdb-memory-unit "Unit size of data items in memory window." (choice (const :tag "Byte" 1) (const :tag "Halfword" 2) (const :tag "Word" 4) (const :tag "Giant word" 8))] 10)
(defalias 'gdb-invalidate-memory #[(&optional signal) "\306>\205'p\307B	\235?\205'\310\311\312\n\f

&\313\314p\"\"\210p\307B	B\211\207" [signal gdb-pending-triggers gdb-memory-address gdb-memory-format gdb-memory-unit gdb-memory-rows (start update) gdb-invalidate-memory gdb-input format "-data-read-memory %s %s %d %d %d" gdb-bind-function-to-buffer gdb-read-memory-handler gdb-memory-columns] 8])
(defalias 'gdb-read-memory-handler #[nil "\305p\306B\"\307\310p\311\"\312\n!\313\n!\314 \210\315 \210\316 \210\317\n\f\",\207" [gdb-pending-triggers buffer-read-only window start p delete gdb-invalidate-memory nil get-buffer-window 0 window-start window-point erase-buffer gdb-read-memory-custom gdb-update-buffer-name set-window-point] 3])
(gdb-set-buffer-rules 'gdb-memory-buffer 'gdb-memory-buffer-name 'gdb-memory-mode 'gdb-invalidate-memory)
#@151 Return length of string with memory unit of SIZE in FORMAT.

SIZE is in bytes, as in `gdb-memory-unit'. FORMAT is a string as
in `gdb-memory-format'.
(defalias 'gdb-memory-column-width #[(size format) "\304\305\"A\211\2038\306\307\310\311\n\312_\"	\"!\313\230\203\"\314\\\2024\315\230\204.\316\230\2033T\2024)\202;\317\320!)\207" [format format-base size res assoc (("x" . 16) ("d" . 10) ("u" . 10) ("o" . 8) ("t" . 2)) ceiling log expt 2.0 8 "x" 2 "d" "o" error "Unknown format"] 7 (#$ . 107898)])
(defalias 'gdb-read-memory-custom #[nil "\306 \307\310\"\211\204w\307\302\"\307\311\"\307\312\"\307\313\"\n\314\211\205s@\307\311\"\315Pc\210\307\316\"\314\211\203e@\317\320\321\"\\\"c\210A\211\204I*\322 \210A\211\204-\314+\202\202\323\324!\210\325	!)*\207" [res err-msg memory gdb-memory-address gdb-memory-next-page gdb-memory-prev-page gdb-json-partial-output bindat-get-field msg addr next-page prev-page nil ":" data gdb-pad-string 2 gdb-memory-column-width newline gdb-invalidate-memory update error gdb-memory-last-address row --dolist-tail-- column gdb-memory-unit gdb-memory-format] 7])
(defvar gdb-memory-mode-map (byte-code "\301 \302\303\"\210\304\305\306#\210\304\307\310#\210\304\311\312#\210\304\313\314#\210\304\315\316#\210\304\317\320#\210\304\321\322#\210\304\323\324#\210\304\325\326#\210\304\327\330#\210\304\331\332#\210\304\333\334#\210\304\335\336#\210\304\337\340#\210\304\341\342#\210)\207" [map make-sparse-keymap suppress-keymap t define-key "q" kill-this-buffer "n" gdb-memory-show-next-page "p" gdb-memory-show-previous-page "a" gdb-memory-set-address "t" gdb-memory-format-binary "o" gdb-memory-format-octal "u" gdb-memory-format-unsigned "d" gdb-memory-format-signed "x" gdb-memory-format-hexadecimal "b" gdb-memory-unit-byte "h" gdb-memory-unit-halfword "w" gdb-memory-unit-word "g" gdb-memory-unit-giant "R" gdb-memory-set-rows "C" gdb-memory-set-columns] 4))
#@58 Handle a click on address field in memory buffer header.
(defalias 'gdb-memory-set-address-event #[(event) "\303 r\304\216\305\306	!\211@)!\210\307 +\207" [save-selected-window--state event position internal--before-save-selected-window ((internal--after-save-selected-window save-selected-window--state)) select-window event-start gdb-memory-set-address] 4 (#$ . 109888) "e"])
#@31 Set the start memory address.
(defalias 'gdb-memory-set-address #[nil "\302\303!\211)\304\305!\207" [arg gdb-memory-address read-from-minibuffer "Memory address: " gdb-invalidate-memory update] 3 (#$ . 110274) nil])
#@67 Define a function NAME which reads new VAR value from minibuffer.
(defalias 'def-gdb-set-positive-number '(macro . #[(name variable echo-string &optional doc) "\304\305	\205	\306\307\310\311\312\313\nDD\314B\315\316\317\320\321D\322BB\323BBBBEE\257\207" [name doc echo-string variable defun (event) (interactive "e") save-selected-window (select-window (posn-window (event-start event))) let* arg read-from-minibuffer ((count (string-to-number arg))) if (<= count 0) (error "Positive number only") customize-set-variable quote (count) ((gdb-invalidate-memory 'update))] 15 (#$ . 110498)]))
#@47 Set the number of data rows in memory window.
(defalias 'gdb-memory-set-rows #[(event) "\305 r\306\216\307\310	!\211@)!\210\311\312!\313!\211\314X\203$\315\316!\202,\317\320\f\"\210\321\322!-\207" [save-selected-window--state event position arg count internal--before-save-selected-window ((internal--after-save-selected-window save-selected-window--state)) select-window event-start read-from-minibuffer "Rows: " string-to-number 0 error "Positive number only" customize-set-variable gdb-memory-rows gdb-invalidate-memory update] 4 (#$ . 111099) "e"])
#@50 Set the number of data columns in memory window.
(defalias 'gdb-memory-set-columns #[(event) "\305 r\306\216\307\310	!\211@)!\210\311\312!\313!\211\314X\203$\315\316!\202,\317\320\f\"\210\321\322!-\207" [save-selected-window--state event position arg count internal--before-save-selected-window ((internal--after-save-selected-window save-selected-window--state)) select-window event-start read-from-minibuffer "Columns: " string-to-number 0 error "Positive number only" customize-set-variable gdb-memory-columns gdb-invalidate-memory update] 4 (#$ . 111665) "e"])
#@105 Define a function NAME to switch memory buffer to use FORMAT.

DOC is an optional documentation string.
(defalias 'def-gdb-memory-format '(macro . #[(name format doc) "\303\304	\205	\305\306\307\nE\310BBBBBB\207" [name doc format defun nil (interactive) customize-set-variable 'gdb-memory-format ((gdb-invalidate-memory 'update))] 8 (#$ . 112244)]))
#@35 Set the display format to binary.
(defalias 'gdb-memory-format-binary #[nil "\300\301\302\"\210\303\304!\207" [customize-set-variable gdb-memory-format "t" gdb-invalidate-memory update] 3 (#$ . 112603) nil])
#@34 Set the display format to octal.
(defalias 'gdb-memory-format-octal #[nil "\300\301\302\"\210\303\304!\207" [customize-set-variable gdb-memory-format "o" gdb-invalidate-memory update] 3 (#$ . 112817) nil])
#@45 Set the display format to unsigned decimal.
(defalias 'gdb-memory-format-unsigned #[nil "\300\301\302\"\210\303\304!\207" [customize-set-variable gdb-memory-format "u" gdb-invalidate-memory update] 3 (#$ . 113029) nil])
#@36 Set the display format to decimal.
(defalias 'gdb-memory-format-signed #[nil "\300\301\302\"\210\303\304!\207" [customize-set-variable gdb-memory-format "d" gdb-invalidate-memory update] 3 (#$ . 113255) nil])
#@40 Set the display format to hexadecimal.
(defalias 'gdb-memory-format-hexadecimal #[nil "\300\301\302\"\210\303\304!\207" [customize-set-variable gdb-memory-format "x" gdb-invalidate-memory update] 3 (#$ . 113470) 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) (#$ . 113694))
#@45 Menu of display formats in the header line.
(defvar gdb-memory-format-menu (byte-code "\301\302!\303\304\305#\210\303\306\307#\210\303\310\311#\210\303\312\313#\210\303\314\315#\210)\207" [map make-sparse-keymap "Format" 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) (#$ . 113924))
(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 r\307\216\310\311	!\211@)!\210\304	!\211\205\312\f\313@!\"\211\205'\314
!-\207" [save-selected-window--state event position selection gdb-memory-format-menu binding internal--before-save-selected-window ((internal--after-save-selected-window save-selected-window--state)) select-window event-start lookup-key vector call-interactively] 5 nil "e"])
#@107 Define a function NAME to switch memory unit size to UNIT-SIZE.

DOC is an optional documentation string.
(defalias 'def-gdb-memory-unit '(macro . #[(name unit-size doc) "\303\304	\205	\305\306\307\nE\310BBBBBB\207" [name doc unit-size defun nil (interactive) customize-set-variable 'gdb-memory-unit ((gdb-invalidate-memory 'update))] 8 (#$ . 115247)]))
#@49 Set the unit size to giant words (eight bytes).
(defalias 'gdb-memory-unit-giant #[nil "\300\301\302\"\210\303\304!\207" [customize-set-variable gdb-memory-unit 8 gdb-invalidate-memory update] 3 (#$ . 115610) nil])
#@42 Set the unit size to words (four bytes).
(defalias 'gdb-memory-unit-word #[nil "\300\301\302\"\210\303\304!\207" [customize-set-variable gdb-memory-unit 4 gdb-invalidate-memory update] 3 (#$ . 115831) nil])
#@45 Set the unit size to halfwords (two bytes).
(defalias 'gdb-memory-unit-halfword #[nil "\300\301\302\"\210\303\304!\207" [customize-set-variable gdb-memory-unit 2 gdb-invalidate-memory update] 3 (#$ . 116044) nil])
#@29 Set the unit size to bytes.
(defalias 'gdb-memory-unit-byte #[nil "\300\301\302\"\210\303\304!\207" [customize-set-variable gdb-memory-unit 1 gdb-invalidate-memory update] 3 (#$ . 116264) nil])
#@200 Define a function NAME which show new address in memory buffer.

The defined function switches Memory buffer to show address
stored in ADDRESS-VAR variable.

DOC is an optional documentation string.
(defalias 'def-gdb-memory-show-page '(macro . #[(name address-var &optional doc) "\303	\205	\304\305\306\nDC\307BB\257\207" [name doc address-var defun (interactive) let gdb-memory-address ((gdb-invalidate-memory))] 7 (#$ . 116465)]))
(defalias 'gdb-memory-show-previous-page #[nil "\302 )\207" [gdb-memory-prev-page gdb-memory-address gdb-invalidate-memory] 1 nil nil])
(defalias 'gdb-memory-show-next-page #[nil "\302 )\207" [gdb-memory-next-page gdb-memory-address gdb-invalidate-memory] 1 nil 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) (#$ . 117181))
#@35 Menu of units in the header line.
(defvar gdb-memory-unit-menu (byte-code "\301\302!\303\304\305#\210\303\306\307#\210\303\310\311#\210\303\312\313#\210)\207" [map make-sparse-keymap "Unit" define-key [giantwords] (menu-item "Giant words" gdb-memory-unit-giant :button (:radio equal gdb-memory-unit 8)) [words] (menu-item "Words" gdb-memory-unit-word :button (:radio equal gdb-memory-unit 4)) [halfwords] (menu-item "Halfwords" gdb-memory-unit-halfword :button (:radio equal gdb-memory-unit 2)) [bytes] (menu-item "Bytes" gdb-memory-unit-byte :button (:radio equal gdb-memory-unit 1))] 4) (#$ . 117406))
(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 r\307\216\310\311	!\211@)!\210\304	!\211\205\312\f\313@!\"\211\205'\314
!-\207" [save-selected-window--state event position selection gdb-memory-unit-menu binding internal--before-save-selected-window ((internal--after-save-selected-window save-selected-window--state)) select-window event-start lookup-key vector call-interactively] 5 nil "e"])
#@47 Font lock keywords used in `gdb-memory-mode'.
(defvar gdb-memory-font-lock-keywords '(("<\\(\\(\\sw\\|[_.]\\)+\\)\\(\\+[0-9]+\\)?>" (1 font-lock-function-name-face))) (#$ . 118538))
#@40 Header line used in `gdb-memory-mode'.
(defvar gdb-memory-header '(:eval (concat "Start 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 #'gdb-memory-show-previous-page)) "|" (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 #'gdb-memory-show-next-page)) "]: " (propertize gdb-memory-address 'face font-lock-warning-face 'help-echo "mouse-1: set start address" 'mouse-face 'mode-line-highlight 'local-map (gdb-make-header-line-mouse-map 'mouse-1 #'gdb-memory-set-address-event)) "  Rows: " (propertize (number-to-string gdb-memory-rows) 'face font-lock-warning-face 'help-echo "mouse-1: set number of columns" 'mouse-face 'mode-line-highlight 'local-map (gdb-make-header-line-mouse-map 'mouse-1 #'gdb-memory-set-rows)) "  Columns: " (propertize (number-to-string gdb-memory-columns) 'face font-lock-warning-face 'help-echo "mouse-1: set number of columns" 'mouse-face 'mode-line-highlight 'local-map (gdb-make-header-line-mouse-map 'mouse-1 #'gdb-memory-set-columns)) "  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 (number-to-string 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))) (#$ . 118726))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\305\306!\204\302\306\307\310#\210\300\207" [gdb-memory-mode-hook variable-documentation put purecopy "Hook run when entering Memory mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" boundp gdb-memory-mode-map definition-name gdb-memory-mode] 5)
(defvar gdb-memory-mode-map (make-sparse-keymap))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\305\306!\204\302\306\307\310#\210\300\207" [gdb-memory-mode-map variable-documentation put purecopy "Keymap for `gdb-memory-mode'." boundp gdb-memory-mode-syntax-table definition-name gdb-memory-mode] 5)
(defvar gdb-memory-mode-syntax-table (make-syntax-table))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [gdb-memory-mode-syntax-table variable-documentation put purecopy "Syntax table for `gdb-memory-mode'." gdb-memory-mode-abbrev-table definition-name gdb-memory-mode] 5)
(defvar gdb-memory-mode-abbrev-table (progn (define-abbrev-table 'gdb-memory-mode-abbrev-table nil) gdb-memory-mode-abbrev-table))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [gdb-memory-mode-abbrev-table variable-documentation put purecopy "Abbrev table for `gdb-memory-mode'." gdb-memory-mode derived-mode-parent gdb-parent-mode] 5)
#@223 Major mode for examining memory.

In addition to any hooks its parent mode `gdb-parent-mode' might have run,
this mode runs the hook `gdb-memory-mode-hook', as the final step
during initialization.

\{gdb-memory-mode-map}
(defalias 'gdb-memory-mode #[nil "\306\300!\210\307\310 \210\311\312\310\313N\203\314\311\313\310\313N#\210\315!\204'\316\317 \"\210\320\f!\211\2036
\321 =\203<\322\f\323 \"\210)\324\325\"\204V=\204V\326\325C#\210\327!\210\330\f!\210 \306\331!\210\332)\333\334!\207" [delay-mode-hooks major-mode mode-name gdb-memory-mode-map gdb-memory-mode-syntax-table parent make-local-variable t gdb-parent-mode gdb-memory-mode "Memory" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table font-lock-defaults (gdb-memory-font-lock-keywords) run-mode-hooks gdb-memory-mode-hook gdb-memory-mode-abbrev-table local-abbrev-table gdb-memory-header header-line-format] 6 (#$ . 121721) nil])
(defalias 'gdb-memory-buffer-name #[nil "\300\301 \302Q\207" ["*memory of " gdb-get-target-string "*"] 3])
#@30 Display GDB memory contents.
(defalias 'gdb-display-memory-buffer #[(&optional thread) "\301\302\303\"!\207" [thread gdb-display-buffer gdb-get-buffer-create gdb-memory-buffer] 4 (#$ . 122923) nil])
#@43 Display memory contents in another frame.
(defalias 'gdb-frame-memory-buffer #[nil "\301\302\303!\"\207" [gdb-display-buffer-other-frame-action display-buffer gdb-get-buffer-create gdb-memory-buffer] 3 (#$ . 123129) nil])
(defalias 'gdb-disassembly-buffer-name #[nil "\300\301\302 P!\207" [gdb-current-context-buffer-name "disassembly of " gdb-get-target-string] 3])
#@38 Display GDB disassembly information.
(defalias 'gdb-display-disassembly-buffer #[(&optional thread) "\301\302\303\"!\207" [thread gdb-display-buffer gdb-get-buffer-create gdb-disassembly-buffer] 4 (#$ . 123503) nil])
(defalias 'gdb-preemptively-display-disassembly-buffer #[(&optional thread) "\301!\210\302\303\304\"\305\"\207" [thread message gdb-preempt-existing-or-display-buffer gdb-get-buffer-create gdb-disassembly-buffer nil] 4])
#@55 Display GDB disassembly information in another frame.
(defalias 'gdb-frame-disassembly-buffer #[(&optional thread) "\302\303\304\"	\"\207" [thread gdb-display-buffer-other-frame-action display-buffer gdb-get-buffer-create gdb-disassembly-buffer] 4 (#$ . 123950) nil])
(defalias 'gdb-invalidate-disassembly #[(&optional signal) "\305>\2058p\306B	\235?\2058\307\310 \311\n\312\"\311\n\304\"\203)\313\314\f#\202*\315+\316\317p\"\"\210p\306B	B\211\207" [signal gdb-pending-triggers frame file line (start update-disassembly) gdb-invalidate-disassembly gdb-input gdb-current-buffer-frame bindat-get-field fullname format "-data-disassemble -f %s -l %s -n -1 -- 0" "-data-disassemble -s $pc -e \"$pc + 150\" -- 0" gdb-bind-function-to-buffer gdb-disassembly-handler] 5])
(defalias 'gdb-disassembly-handler #[nil "\305p\306B\"\307\310p\311\"\312\n!\313\n!\314 \210\315 \210\316 \210,\307\207" [gdb-pending-triggers buffer-read-only window start p delete gdb-invalidate-disassembly nil get-buffer-window 0 window-start window-point erase-buffer gdb-disassembly-handler-custom gdb-update-buffer-name] 3])
(gdb-set-buffer-rules 'gdb-disassembly-buffer 'gdb-disassembly-buffer-name 'gdb-disassembly-mode 'gdb-invalidate-disassembly)
#@52 Font lock keywords used in `gdb-disassembly-mode'.
(defvar gdb-disassembly-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)) (#$ . 125196))
(defvar gdb-disassembly-mode-map (byte-code "\301 \302!\210\303\304\305#\210)\207" [map make-sparse-keymap suppress-keymap define-key "q" kill-this-buffer] 4))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\305\306!\204\302\306\307\310#\210\300\207" [gdb-disassembly-mode-hook variable-documentation put purecopy "Hook run when entering Disassembly mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" boundp gdb-disassembly-mode-map definition-name gdb-disassembly-mode] 5)
(defvar gdb-disassembly-mode-map (make-sparse-keymap))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\305\306!\204\302\306\307\310#\210\300\207" [gdb-disassembly-mode-map variable-documentation put purecopy "Keymap for `gdb-disassembly-mode'." boundp gdb-disassembly-mode-syntax-table definition-name gdb-disassembly-mode] 5)
(defvar gdb-disassembly-mode-syntax-table (make-syntax-table))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [gdb-disassembly-mode-syntax-table variable-documentation put purecopy "Syntax table for `gdb-disassembly-mode'." gdb-disassembly-mode-abbrev-table definition-name gdb-disassembly-mode] 5)
(defvar gdb-disassembly-mode-abbrev-table (progn (define-abbrev-table 'gdb-disassembly-mode-abbrev-table nil) gdb-disassembly-mode-abbrev-table))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [gdb-disassembly-mode-abbrev-table variable-documentation put purecopy "Abbrev table for `gdb-disassembly-mode'." gdb-disassembly-mode derived-mode-parent gdb-parent-mode] 5)
#@244 Major mode for GDB disassembly information.

In addition to any hooks its parent mode `gdb-parent-mode' might have run,
this mode runs the hook `gdb-disassembly-mode-hook', as the final step
during initialization.

\{gdb-disassembly-mode-map}
(defalias 'gdb-disassembly-mode #[nil "\306\300!\210\307\310 \210\311\312\310\313N\203\314\311\313\310\313N#\210\315!\204'\316\317 \"\210\320\f!\211\2036
\321 =\203<\322\f\323 \"\210)\324!\325\"\204V!\"=\204V\326!\325\"C#\210\327!\210\330\f!\210!\"\331\332\333\"\210\307#\306\333!\210\334 \306\335!\210\336)\337\340!\207" [delay-mode-hooks major-mode mode-name gdb-disassembly-mode-map gdb-disassembly-mode-syntax-table parent make-local-variable t gdb-parent-mode gdb-disassembly-mode "Disassembly" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table add-to-list overlay-arrow-variable-list gdb-disassembly-position make-marker font-lock-defaults (gdb-disassembly-font-lock-keywords) run-mode-hooks gdb-disassembly-mode-hook gdb-disassembly-mode-abbrev-table local-abbrev-table fringes-outside-margins] 6 (#$ . 127348) nil])
(defalias 'gdb-disassembly-handler-custom #[nil "\306\307 \310\"\306\311 \312\"\313\314\315\211\211\211%\315\315\211\203y
@\316\n\306\f\301\"\306\f\317\"\306\f\320\"\211\203A\321\322#\202B\323*\306\f\324\"E\"\210\306\f\301\"	\230\203r\n\325H+>\204b\326\327\330\331#\210\n\332HG,\333\230?\205p\334-
A\211\204*\335\n\336\"c\210\337 \210\203\277\340p\325\".\341.\212\342!\211/@0/A12\3430!\315\223\210\344 @\325V\204\271\34501\346\347$\2100,\"\210)\350\351\306\311 \352\"P!\2113,\207" [instructions address table marked-line instr --dolist-tail-- bindat-get-field gdb-json-partial-output asm_insns gdb-current-buffer-frame addr vector cl-struct-gdb-table nil gdb-table-add-row func-name offset format "<%s+%s>:" "" inst 0 error "%s accessing a non-%s" gdb-table-rows gdb-table 2 "0" ((overlay-arrow . hollow-right-triangle)) gdb-table-string " " gdb-disassembly-place-breakpoints get-buffer-window set-window-point gdb-line-posns copy-marker window-fringes put-text-property font-lock-face (:inverse-video t) gdb-current-context-mode-name "Disassembly: " func cl-struct-gdb-table-tags gdb-frame-number fringe-indicator-alist window posns start-posn end-posn gdb-disassembly-position mode-name] 8])
(defalias 'gdb-disassembly-place-breakpoints #[nil "\306ed\"\210\307\211\205@\n@\211A\310	\311\"\310	\312\"\310	\313\"\212eb\210\314\315
P\307\316#\2037\317\f\320\230\"\210-\nA\211\204
\307*\207" [gdb-breakpoints-list breakpoint --dolist-tail-- bptno flag address gdb-remove-breakpoint-icons nil bindat-get-field number enabled addr re-search-forward "^" t gdb-put-breakpoint-icon "y"] 5])
(defvar gdb-breakpoints-header (byte-code "\300\301\302\303\304\303\305\306\307\310\311\312\"&	\313\300\314\302\315\304\316\305\317\307\310\311\320\"&	E\207" [propertize "Breakpoints" help-echo nil mouse-face face mode-line local-map gdb-make-header-line-mouse-map mouse-1 #[#1=(event) "\303 r\304\216\305\306	!\211@)!\210\307\310\311!\312\"+\207" [save-selected-window--state event position internal--before-save-selected-window ((internal--after-save-selected-window save-selected-window--state)) select-window event-start gdb-set-window-buffer gdb-get-buffer-create gdb-breakpoints-buffer t] 4 nil #2="e"] " " "Threads" "mouse-1: select" mode-line-highlight mode-line-inactive #[#1# "\303 r\304\216\305\306	!\211@)!\210\307\310\311!\312\"+\207" [save-selected-window--state event position internal--before-save-selected-window ((internal--after-save-selected-window save-selected-window--state)) select-window event-start gdb-set-window-buffer gdb-get-buffer-create gdb-threads-buffer t] 4 nil #2#]] 14))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\305\306!\204\302\306\307\310#\210\300\207" [gdb-breakpoints-mode-hook variable-documentation put purecopy "Hook run when entering Breakpoints mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" boundp gdb-breakpoints-mode-map definition-name gdb-breakpoints-mode] 5)
(defvar gdb-breakpoints-mode-map (make-sparse-keymap))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\305\306!\204\302\306\307\310#\210\300\207" [gdb-breakpoints-mode-map variable-documentation put purecopy "Keymap for `gdb-breakpoints-mode'." boundp gdb-breakpoints-mode-syntax-table definition-name gdb-breakpoints-mode] 5)
(defvar gdb-breakpoints-mode-syntax-table (make-syntax-table))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [gdb-breakpoints-mode-syntax-table variable-documentation put purecopy "Syntax table for `gdb-breakpoints-mode'." gdb-breakpoints-mode-abbrev-table definition-name gdb-breakpoints-mode] 5)
(defvar gdb-breakpoints-mode-abbrev-table (progn (define-abbrev-table 'gdb-breakpoints-mode-abbrev-table nil) gdb-breakpoints-mode-abbrev-table))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [gdb-breakpoints-mode-abbrev-table variable-documentation put purecopy "Abbrev table for `gdb-breakpoints-mode'." gdb-breakpoints-mode derived-mode-parent gdb-parent-mode] 5)
#@232 Major mode for gdb breakpoints.

In addition to any hooks its parent mode `gdb-parent-mode' might have run,
this mode runs the hook `gdb-breakpoints-mode-hook', as the final step
during initialization.

\{gdb-breakpoints-mode-map}
(defalias 'gdb-breakpoints-mode #[nil "\306\300!\210\307\310 \210\311\312\310\313N\203\314\311\313\310\313N#\210\315!\204'\316\317 \"\210\320\f!\211\2036
\321 =\203<\322\f\323 \"\210)\324\325\"\204V=\204V\326\325C#\210\327!\210\330\f!\210)\331\332!\207" [delay-mode-hooks major-mode mode-name gdb-breakpoints-mode-map gdb-breakpoints-mode-syntax-table parent make-local-variable t gdb-parent-mode gdb-breakpoints-mode "Breakpoints" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table run-mode-hooks gdb-breakpoints-mode-hook gdb-breakpoints-mode-abbrev-table local-abbrev-table gdb-breakpoints-header header-line-format] 6 (#$ . 132731) nil])
#@66 Enable/disable breakpoint at current line of breakpoints buffer.
(defalias 'gdb-toggle-breakpoint #[nil "\212\301 \210\302`\303\"\211\203%\304\305\306\"\307\232\203\310\202\311\305\312\"P!\202(\313\314!*\207" [breakpoint beginning-of-line get-text-property gdb-breakpoint gud-basic-call bindat-get-field enabled "y" "-break-disable " "-break-enable " number error "Not recognized as break/watchpoint line"] 6 (#$ . 133805) nil])
#@62 Delete the breakpoint at current line of breakpoints buffer.
(defalias 'gdb-delete-breakpoint #[nil "\212\301 \210\302`\303\"\211\203\304\305\306\307\"P!\202\310\311!*\207" [breakpoint beginning-of-line get-text-property gdb-breakpoint gud-basic-call "-break-delete " bindat-get-field number error "Not recognized as break/watchpoint line"] 6 (#$ . 134249) nil])
#@73 Go to the location of breakpoint at current line of
breakpoints buffer.
(defalias 'gdb-goto-breakpoint #[(&optional event) "\203\n\306\307!!\210\310	!\211\203\311 r\312\216\313\n!\210+)\212\314 \210\315`\316\"\211\203\317\f\320\"\317\f\321\"\317\f\305\"\311 r\322\216\323\324!\203O\202V\325\"A!\326!\206d\327!\211 rq\210eb\210\330
!Sy\210\331\n`\".	\202\202\332\333!*\207" [event gud-comint-buffer window save-selected-window--state breakpoint line posn-set-point event-end get-buffer-window internal--before-save-selected-window ((internal--after-save-selected-window save-selected-window--state)) select-window beginning-of-line get-text-property gdb-breakpoint bindat-get-field number fullname ((internal--after-save-selected-window save-selected-window--state)) find-file-noselect file-exists-p assoc gdb-display-source-buffer display-buffer string-to-number set-window-point error "Not recognized as break/watchpoint line" file bptno gdb-location-alist buffer gdb-source-window] 6 (#$ . 134624) (list last-input-event)])
(defalias 'gdb-invalidate-frames #[(&optional signal) "\302>\205 p\303B	\235?\205 \304\305\306!\307\310p\"\"\210p\303B	B\211\207" [signal gdb-pending-triggers (start update) gdb-invalidate-frames gdb-input gdb-current-context-command "-stack-list-frames" gdb-bind-function-to-buffer gdb-stack-list-frames-handler] 5])
(defalias 'gdb-stack-list-frames-handler #[nil "\305p\306B\"\307\310p\311\"\312\n!\313\n!\314 \210\315 \210\316 \210\317\n\f\",\207" [gdb-pending-triggers buffer-read-only window start p delete gdb-invalidate-frames nil get-buffer-window 0 window-start window-point erase-buffer gdb-stack-list-frames-custom gdb-update-buffer-name set-window-point] 3])
(gdb-set-buffer-rules 'gdb-stack-buffer 'gdb-stack-buffer-name 'gdb-frames-mode 'gdb-invalidate-frames)
#@130 Return " of file:line" or " of library" for structure FRAME.

FRAME must have either "file" and "line" members or "from"
member.
(defalias 'gdb-frame-location #[(frame) "\305\303\"\305\302\"\305\301\"\211\203\n\203\306\nQ\206	\211\203*\307\fP\202+\310,\207" [frame from line file res bindat-get-field ":" " of " ""] 6 (#$ . 136480)])
(defalias 'gdb-stack-list-frames-custom #[nil "\306\307\310!\301\"\311\312\313\211\211\211%\n\313\211\223\210	\313\211\203W\f@\314\306\315\"\316\306\317\"
\2034\320!\2025\321&\203C\322\306\323\"P\202D\321QE\324\325\326\327\330\257#\210\fA\211\204*\331\332\"c\210*'\203\231\333 \203\231\212\334\335'!T!\211(@)(A*\n\336)!\313\223\210\337 @\340V\204\225\341)*\342\343$\210)\210,\344\345!\211+\207" [table stack gdb-stack-position frame --dolist-tail-- gdb-stack-buffer-locations bindat-get-field gdb-json-partial-output "frame" vector cl-struct-gdb-table nil gdb-table-add-row level "in" func gdb-frame-location "" " at " addr mouse-face highlight help-echo "mouse-2, RET: Select frame" gdb-frame gdb-table-string " " gdb-buffer-shows-main-thread-p gdb-line-posns string-to-number copy-marker window-fringes 0 put-text-property font-lock-face (:inverse-video t) gdb-current-context-mode-name "Frames" gdb-stack-buffer-addresses gdb-frame-number posns start-posn end-posn mode-name] 11])
(defalias 'gdb-stack-buffer-name #[nil "\300\301\302 P!\207" [gdb-current-context-buffer-name "stack frames of " gdb-get-target-string] 3])
#@42 Display GDB backtrace for current stack.
(defalias 'gdb-display-stack-buffer #[(&optional thread) "\301\302\303\"!\207" [thread gdb-display-buffer gdb-get-buffer-create gdb-stack-buffer] 4 (#$ . 137996) nil])
(defalias 'gdb-preemptively-display-stack-buffer #[(&optional thread) "\301!\210\302\303\304\"\305\"\207" [thread message gdb-preempt-existing-or-display-buffer gdb-get-buffer-create gdb-stack-buffer t] 4])
#@59 Display GDB backtrace for current stack in another frame.
(defalias 'gdb-frame-stack-buffer #[(&optional thread) "\302\303\304\"	\"\207" [thread gdb-display-buffer-other-frame-action display-buffer gdb-get-buffer-create gdb-stack-buffer] 4 (#$ . 138421) nil])
(defvar gdb-frames-mode-map (byte-code "\301 \302!\210\303\304\305#\210\303\306\307#\210\303\310\307#\210\303\311\312#\210)\207" [map make-sparse-keymap suppress-keymap define-key "q" kill-this-buffer "
" gdb-select-frame [mouse-2] [follow-link] mouse-face] 4))
#@47 Font lock keywords used in `gdb-frames-mode'.
(defvar gdb-frames-font-lock-keywords '(("in \\([^ ]+\\)" (1 font-lock-function-name-face))) (#$ . 138957))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\305\306!\204\302\306\307\310#\210\300\207" [gdb-frames-mode-hook variable-documentation put purecopy "Hook run when entering Frames mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" boundp gdb-frames-mode-map definition-name gdb-frames-mode] 5)
(defvar gdb-frames-mode-map (make-sparse-keymap))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\305\306!\204\302\306\307\310#\210\300\207" [gdb-frames-mode-map variable-documentation put purecopy "Keymap for `gdb-frames-mode'." boundp gdb-frames-mode-syntax-table definition-name gdb-frames-mode] 5)
(defvar gdb-frames-mode-syntax-table (make-syntax-table))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [gdb-frames-mode-syntax-table variable-documentation put purecopy "Syntax table for `gdb-frames-mode'." gdb-frames-mode-abbrev-table definition-name gdb-frames-mode] 5)
(defvar gdb-frames-mode-abbrev-table (progn (define-abbrev-table 'gdb-frames-mode-abbrev-table nil) gdb-frames-mode-abbrev-table))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [gdb-frames-mode-abbrev-table variable-documentation put purecopy "Abbrev table for `gdb-frames-mode'." gdb-frames-mode derived-mode-parent gdb-parent-mode] 5)
#@221 Major mode for gdb call stack.

In addition to any hooks its parent mode `gdb-parent-mode' might have run,
this mode runs the hook `gdb-frames-mode-hook', as the final step
during initialization.

\{gdb-frames-mode-map}
(defalias 'gdb-frames-mode #[nil "\306\300!\210\307\310 \210\311\312\310\313N\203\314\311\313\310\313N#\210\315!\204'\316\317 \"\210\320\f!\211\2036
\321 =\203<\322\f\323 \"\210)\324!\325\"\204V!\"=\204V\326!\325\"C#\210\327!\210\330\f!\210!\"\331 \332\333\334\"\210\307#\306\335!\210\336)\337\340!\207" [delay-mode-hooks major-mode mode-name gdb-frames-mode-map gdb-frames-mode-syntax-table parent make-local-variable t gdb-parent-mode gdb-frames-mode "Frames" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table make-marker add-to-list overlay-arrow-variable-list gdb-stack-position font-lock-defaults (gdb-frames-font-lock-keywords) run-mode-hooks gdb-frames-mode-hook gdb-frames-mode-abbrev-table local-abbrev-table truncate-lines] 6 (#$ . 140483) nil])
#@51 Select the frame and display the relevant source.
(defalias 'gdb-select-frame #[(&optional event) "\203\n\304\305!!\210\306`\307\"\211\2032\310 \203,\311	\312\"\211\313\314\nP\315\"\210\316 )\2025\317\320!\2025\317\321!)\207" [event frame new-level gdb-frame-number posn-set-point event-end get-text-property gdb-frame gdb-buffer-shows-main-thread-p bindat-get-field level gdb-input "-stack-select-frame " ignore gdb-update error "Could not select frame for non-current thread" "Not recognized as frame line"] 4 (#$ . 141655) (list last-input-event)])
(defalias 'gdb-invalidate-locals #[(&optional signal) "\302>\205\"p\303B	\235?\205\"\304\305\306!\307P\310\311p\"\"\210p\303B	B\211\207" [signal gdb-pending-triggers (start update) gdb-invalidate-locals gdb-input gdb-current-context-command "-stack-list-locals" " --simple-values" gdb-bind-function-to-buffer gdb-locals-handler] 5])
(defalias 'gdb-locals-handler #[nil "\305p\306B\"\307\310p\311\"\312\n!\313\n!\314 \210\315 \210\316 \210\317\n\f\",\207" [gdb-pending-triggers buffer-read-only window start p delete gdb-invalidate-locals nil get-buffer-window 0 window-start window-point erase-buffer gdb-locals-handler-custom gdb-update-buffer-name set-window-point] 3])
(gdb-set-buffer-rules 'gdb-locals-buffer 'gdb-locals-buffer-name 'gdb-locals-mode 'gdb-invalidate-locals)
#@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\305#\210)\207" [map make-sparse-keymap suppress-keymap define-key "
" gud-watch [mouse-2]] 4) (#$ . 143011))
#@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) (#$ . 143285))
#@62 Assign a value to a variable displayed in the locals buffer.
(defalias 'gdb-edit-locals-value #[(&optional event) "\212\203\303\304!!\210\305 \210\306\307`\310\"\311\"\312\313\314	\"!\315\316	\317\nR!+\207" [event var value posn-set-point event-end beginning-of-line bindat-get-field get-text-property gdb-local-variable name read-string format "New value (%s): " gud-basic-call "-gdb-set variable " " = "] 5 (#$ . 143558) (list last-input-event)])
(defalias 'gdb-locals-handler-custom #[nil "\306\307 \310\"\311\312\313\211\211\211%\211\313\211\203w@\306\n\314\"\306\n\305\"\306\n\304\"\f
\2034\315\316
\"\203I\317\320\fG\321\322\323\324\325!\257\f$\210\202Y\317\320
G\321\322\323\326\325\"\257
$\210\327\330\f\331##\330\f\331$#
E\332\nD#\210+A\211\204*\333\334\"c\210\335\336\306\337 \340\"P!\211%*\207" [table locals-list local --dolist-tail-- type value bindat-get-field gdb-json-partial-output locals vector cl-struct-gdb-table nil name string-match "\\0x" add-text-properties 0 mouse-face highlight help-echo "mouse-2: create watch expression" local-map "mouse-2: edit value" gdb-table-add-row propertize font-lock-face gdb-local-variable gdb-table-string " " gdb-current-context-mode-name "Locals: " gdb-current-buffer-frame func gdb-locals-watch-map gdb-edit-locals-map-1 font-lock-type-face font-lock-variable-name-face mode-name] 10])
(defvar gdb-locals-header (byte-code "\300\301\302\303\304\303\305\306\307\310\311\312\"&	\313\300\314\302\315\304\316\305\317\307\310\311\320\"&	E\207" [propertize "Locals" help-echo nil mouse-face face mode-line local-map gdb-make-header-line-mouse-map mouse-1 #[#1=(event) "\303 r\304\216\305\306	!\211@)!\210\307\310\311!\312\"+\207" [save-selected-window--state event position internal--before-save-selected-window ((internal--after-save-selected-window save-selected-window--state)) select-window event-start gdb-set-window-buffer gdb-get-buffer-create gdb-locals-buffer t] 4 nil #2="e"] " " "Registers" "mouse-1: select" mode-line-highlight mode-line-inactive #[#1# "\303 r\304\216\305\306	!\211@)!\210\307\310\311!\312\"+\207" [save-selected-window--state event position internal--before-save-selected-window ((internal--after-save-selected-window save-selected-window--state)) select-window event-start gdb-set-window-buffer gdb-get-buffer-create gdb-registers-buffer t] 4 nil #2#]] 14))
(defvar gdb-locals-mode-map (byte-code "\301 \302!\210\303\304\305#\210\303\306\307#\210)\207" [map make-sparse-keymap suppress-keymap define-key "q" kill-this-buffer "	" #[nil "\301\302\303\"\304\"\207" [gdb-thread-number gdb-set-window-buffer gdb-get-buffer-create gdb-registers-buffer t] 4 nil nil]] 4))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\305\306!\204\302\306\307\310#\210\300\207" [gdb-locals-mode-hook variable-documentation put purecopy "Hook run when entering Locals mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" boundp gdb-locals-mode-map definition-name gdb-locals-mode] 5)
(defvar gdb-locals-mode-map (make-sparse-keymap))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\305\306!\204\302\306\307\310#\210\300\207" [gdb-locals-mode-map variable-documentation put purecopy "Keymap for `gdb-locals-mode'." boundp gdb-locals-mode-syntax-table definition-name gdb-locals-mode] 5)
(defvar gdb-locals-mode-syntax-table (make-syntax-table))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [gdb-locals-mode-syntax-table variable-documentation put purecopy "Syntax table for `gdb-locals-mode'." gdb-locals-mode-abbrev-table definition-name gdb-locals-mode] 5)
(defvar gdb-locals-mode-abbrev-table (progn (define-abbrev-table 'gdb-locals-mode-abbrev-table nil) gdb-locals-mode-abbrev-table))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [gdb-locals-mode-abbrev-table variable-documentation put purecopy "Abbrev table for `gdb-locals-mode'." gdb-locals-mode derived-mode-parent gdb-parent-mode] 5)
#@217 Major mode for gdb locals.

In addition to any hooks its parent mode `gdb-parent-mode' might have run,
this mode runs the hook `gdb-locals-mode-hook', as the final step
during initialization.

\{gdb-locals-mode-map}
(defalias 'gdb-locals-mode #[nil "\306\300!\210\307\310 \210\311\312\310\313N\203\314\311\313\310\313N#\210\315!\204'\316\317 \"\210\320\f!\211\2036
\321 =\203<\322\f\323 \"\210)\324\325\"\204V=\204V\326\325C#\210\327!\210\330\f!\210)\331\332!\207" [delay-mode-hooks major-mode mode-name gdb-locals-mode-map gdb-locals-mode-syntax-table parent make-local-variable t gdb-parent-mode gdb-locals-mode "Locals" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table run-mode-hooks gdb-locals-mode-hook gdb-locals-mode-abbrev-table local-abbrev-table gdb-locals-header header-line-format] 6 (#$ . 147624) nil])
(defalias 'gdb-locals-buffer-name #[nil "\300\301\302 P!\207" [gdb-current-context-buffer-name "locals of " gdb-get-target-string] 3])
#@51 Display the local variables of current GDB stack.
(defalias 'gdb-display-locals-buffer #[(&optional thread) "\301\302\303\"!\207" [thread gdb-display-buffer gdb-get-buffer-create gdb-locals-buffer] 4 (#$ . 148778) nil])
(defalias 'gdb-preemptively-display-locals-buffer #[(&optional thread) "\301!\210\302\303\304\"\305\"\207" [thread message gdb-preempt-existing-or-display-buffer gdb-get-buffer-create gdb-locals-buffer t] 4])
#@72 Display the local variables of the current GDB stack in another frame.
(defalias 'gdb-frame-locals-buffer #[(&optional thread) "\302\303\304\"	\"\207" [thread gdb-display-buffer-other-frame-action display-buffer gdb-get-buffer-create gdb-locals-buffer] 4 (#$ . 149216) nil])
(defalias 'gdb-invalidate-registers #[(&optional signal) "\302>\205\"p\303B	\235?\205\"\304\305\306!\307P\310\311p\"\"\210p\303B	B\211\207" [signal gdb-pending-triggers (start update) gdb-invalidate-registers gdb-input gdb-current-context-command "-data-list-register-values" " x" gdb-bind-function-to-buffer gdb-registers-handler] 5])
(defalias 'gdb-registers-handler #[nil "\305p\306B\"\307\310p\311\"\312\n!\313\n!\314 \210\315 \210\316 \210\317\n\f\",\207" [gdb-pending-triggers buffer-read-only window start p delete gdb-invalidate-registers nil get-buffer-window 0 window-start window-point erase-buffer gdb-registers-handler-custom gdb-update-buffer-name set-window-point] 3])
(gdb-set-buffer-rules 'gdb-registers-buffer 'gdb-registers-buffer-name 'gdb-registers-mode 'gdb-invalidate-registers)
(defalias 'gdb-registers-handler-custom #[nil "\205m\306\307 \302\"\310\311\312\211\211\211%\211\312\211\203_\f@\306\313\"\306\314\"\f\315
!8\316	\317\320#
\235\203I\317\f\320#\202K\fD\321\322\323\324\325\257#\210+\fA\211\204*\326	\327\"c\210*\330\331!\211\207" [gdb-register-names table register-values register --dolist-tail-- register-number bindat-get-field gdb-json-partial-output vector cl-struct-gdb-table nil number value string-to-number gdb-table-add-row propertize font-lock-face mouse-face highlight help-echo "mouse-2: edit value" gdb-register-name gdb-table-string " " gdb-current-context-mode-name "Registers" register-name font-lock-variable-name-face gdb-changed-registers font-lock-warning-face mode-name] 10])
#@65 Assign a value to a register displayed in the registers buffer.
(defalias 'gdb-edit-register-value #[(&optional event) "\212\203\303\304!!\210\305 \210\306\307`\310\"!\311\312\313	\"!\314\315	\316\nR!+\207" [event var value posn-set-point event-end beginning-of-line bindat-get-field get-text-property gdb-register-name read-string format "New value (%s): " gud-basic-call "-gdb-set variable $" " = "] 5 (#$ . 151074) (list last-input-event)])
(defvar gdb-registers-mode-map (byte-code "\301 \302!\210\303\304\305#\210\303\306\305#\210\303\307\310#\210\303\311\312#\210)\207" [map make-sparse-keymap suppress-keymap define-key "
" gdb-edit-register-value [mouse-2] "q" kill-this-buffer "	" #[nil "\301\302\303\"\304\"\207" [gdb-thread-number gdb-set-window-buffer gdb-get-buffer-create gdb-locals-buffer t] 4 nil nil]] 4))
(defvar gdb-registers-header (byte-code "\300\301\302\303\304\305\306\307\310\311\312\313\"&	\314\300\315\302\316\304\316\306\317\310\311\312\320\"&	E\207" [propertize "Locals" help-echo "mouse-1: select" mouse-face mode-line-highlight face mode-line-inactive local-map gdb-make-header-line-mouse-map mouse-1 #[#1=(event) "\303 r\304\216\305\306	!\211@)!\210\307\310\311!\312\"+\207" [save-selected-window--state event position internal--before-save-selected-window ((internal--after-save-selected-window save-selected-window--state)) select-window event-start gdb-set-window-buffer gdb-get-buffer-create gdb-locals-buffer t] 4 nil #2="e"] " " "Registers" nil mode-line #[#1# "\303 r\304\216\305\306	!\211@)!\210\307\310\311!\312\"+\207" [save-selected-window--state event position internal--before-save-selected-window ((internal--after-save-selected-window save-selected-window--state)) select-window event-start gdb-set-window-buffer gdb-get-buffer-create gdb-registers-buffer t] 4 nil #2#]] 14))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\305\306!\204\302\306\307\310#\210\300\207" [gdb-registers-mode-hook variable-documentation put purecopy "Hook run when entering Registers mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" boundp gdb-registers-mode-map definition-name gdb-registers-mode] 5)
(defvar gdb-registers-mode-map (make-sparse-keymap))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\305\306!\204\302\306\307\310#\210\300\207" [gdb-registers-mode-map variable-documentation put purecopy "Keymap for `gdb-registers-mode'." boundp gdb-registers-mode-syntax-table definition-name gdb-registers-mode] 5)
(defvar gdb-registers-mode-syntax-table (make-syntax-table))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [gdb-registers-mode-syntax-table variable-documentation put purecopy "Syntax table for `gdb-registers-mode'." gdb-registers-mode-abbrev-table definition-name gdb-registers-mode] 5)
(defvar gdb-registers-mode-abbrev-table (progn (define-abbrev-table 'gdb-registers-mode-abbrev-table nil) gdb-registers-mode-abbrev-table))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [gdb-registers-mode-abbrev-table variable-documentation put purecopy "Abbrev table for `gdb-registers-mode'." gdb-registers-mode derived-mode-parent gdb-parent-mode] 5)
#@226 Major mode for gdb registers.

In addition to any hooks its parent mode `gdb-parent-mode' might have run,
this mode runs the hook `gdb-registers-mode-hook', as the final step
during initialization.

\{gdb-registers-mode-map}
(defalias 'gdb-registers-mode #[nil "\306\300!\210\307\310 \210\311\312\310\313N\203\314\311\313\310\313N#\210\315!\204'\316\317 \"\210\320\f!\211\2036
\321 =\203<\322\f\323 \"\210)\324\325\"\204V=\204V\326\325C#\210\327!\210\330\f!\210)\331\332!\207" [delay-mode-hooks major-mode mode-name gdb-registers-mode-map gdb-registers-mode-syntax-table parent make-local-variable t gdb-parent-mode gdb-registers-mode "Registers" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table run-mode-hooks gdb-registers-mode-hook gdb-registers-mode-abbrev-table local-abbrev-table gdb-registers-header header-line-format] 6 (#$ . 154347) nil])
(defalias 'gdb-registers-buffer-name #[nil "\300\301\302 P!\207" [gdb-current-context-buffer-name "registers of " gdb-get-target-string] 3])
#@32 Display GDB register contents.
(defalias 'gdb-display-registers-buffer #[(&optional thread) "\301\302\303\"!\207" [thread gdb-display-buffer gdb-get-buffer-create gdb-registers-buffer] 4 (#$ . 155540) nil])
(defalias 'gdb-preemptively-display-registers-buffer #[(&optional thread) "\301!\210\302\303\304\"\305\"\207" [thread message gdb-preempt-existing-or-display-buffer gdb-get-buffer-create gdb-registers-buffer t] 4])
#@49 Display GDB register contents in another frame.
(defalias 'gdb-frame-registers-buffer #[(&optional thread) "\302\303\304\"	\"\207" [thread gdb-display-buffer-other-frame-action display-buffer gdb-get-buffer-create gdb-registers-buffer] 4 (#$ . 155971) nil])
(defalias 'gdb-get-changed-registers #[nil "\301\302!\205\303\235?\205\304\305\306\"\210\303B\211\207" [gdb-pending-triggers gdb-get-buffer gdb-registers-buffer gdb-get-changed-registers gdb-input "-data-list-changed-registers" gdb-changed-registers-handler] 3])
(defalias 'gdb-changed-registers-handler #[nil "\304\305\"\306\307\310 \311\"\306\211\205\"@\211	BA\211\204\306*\207" [gdb-pending-triggers gdb-changed-registers register-number --dolist-tail-- delete gdb-get-changed-registers nil bindat-get-field gdb-json-partial-output changed-registers] 4])
(defalias 'gdb-register-names-handler #[nil "\303\304\305 \306\"\303\211\203\n@\211B\nA\211\204*\307!\211\207" [gdb-register-names register-name --dolist-tail-- nil bindat-get-field gdb-json-partial-output register-names reverse] 4])
#@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-get-source-file-list #[nil "eb\210\305\306\307#\203\310\311!	B\202\312 \306\211\2056@r\nq\210\f	\235\203-\313 \210)A\211\204\306*\207" [gdb-source-file-regexp gdb-source-file-list buffer --dolist-tail-- buffer-file-name re-search-forward nil t match-string 1 buffer-list gdb-init-buffer] 5 (#$ . 157062)])
#@91 Trigger for `gdb-frame-handler' which uses main current
thread. Called from `gdb-update'.
(defalias 'gdb-get-main-selected-frame #[nil "\301\235?\205\302\303\304!\305\"\210\301B\211\207" [gdb-pending-triggers gdb-get-main-selected-frame gdb-input gdb-current-context-command "-stack-info-frame" gdb-frame-handler] 3 (#$ . 157538)])
#@91 Sets `gdb-selected-frame' and `gdb-selected-file' to show
overlay arrow in source buffer.
(defalias 'gdb-frame-handler #[nil "\306\307\"\310\311 \301\"\211\205u\310	\312\"\310	\313\"\310	\314\"\310	\315\"\310	\316\"\211\2051\317!\203E\203EB\320 \210)\205u\321!\322!\211\205trq\210\f\323\230?\205h\324\325 \211\326\223)*)\207" [gdb-pending-triggers frame gdb-selected-frame gdb-selected-file gdb-frame-number gdb-frame-address delete gdb-get-main-selected-frame bindat-get-field gdb-json-partial-output func fullname level addr line string-to-number gud-display-frame marker-buffer marker-position "0" ((overlay-arrow . hollow-right-triangle)) make-marker nil gdb-selected-line gud-last-frame gud-overlay-arrow-position position buffer fringe-indicator-alist] 4 (#$ . 157881)])
(defvar gdb-prompt-name-regexp "value=\"\\(.*?\\)\"")
#@30 Find prompt for GDB session.
(defalias 'gdb-get-prompt #[nil "eb\210\303\304	\303\305#\210\306\307!\nP\211\207" [gdb-prompt-name gdb-prompt-name-regexp gdb-filter-output nil re-search-forward t match-string 1] 4 (#$ . 158764)])
#@50 Show buffer BUF, and make that window dedicated.
(defalias 'gdb-display-buffer #[(buf) "\302!\303	\304\"\210	)\207" [buf window display-buffer set-window-dedicated-p t] 3 (#$ . 159002)])
#@275 Find window displaying a buffer with the same
`gdb-buffer-type' as BUF and show BUF there. If no such window
exists, just call `gdb-display-buffer' for BUF. If the window
found is already dedicated, split window according to
SPLIT-HORIZONTAL and show BUF in the new window.
(defalias 'gdb-preempt-existing-or-display-buffer #[(buf &optional split-horizontal) "\2037\305!?\205:\306!\307\310!\211\203\311\n\"\2025\307\312!\211\2031\311\313\314\f#\"\2024\315!)*\207\316\317!\207" [buf buf-type existing-window dedicated-window split-horizontal get-buffer-window gdb-buffer-type get-window-with-predicate #[(w) "\302\303	!!=\205\304	!?\207" [buf-type w gdb-buffer-type window-buffer window-dedicated-p] 4] set-window-buffer #[(w) "\302\303	!!=\207" [buf-type w gdb-buffer-type window-buffer] 4] split-window nil gdb-display-buffer error "Null buffer"] 6 (#$ . 159198)])
(byte-code "\303\304!\305	\306\307\304\310BBB#\210\305\311\312#\210\305\313\314#\210\305\315\316#\210\305\317\320#\210\305\321\322#\210\305\323\324#\210\305\325\326#\210\305\327\330#\210\305\331\332#\210)\303\333!\305	\334\307\333\335BBB#\210\305\336\337#\210\305\340\341#\210\305\342\343#\210\305\344\345#\210\305\346\347#\210\305\350\351#\210\305\352\353#\210\305\354\355#\210\305\356\357#\210)\303\360!\305\361\362#\210\305\363\364#\210\305\365\366#\210\305\367\370#\210\305\371\372#\210\305\373\374#\210\305\375\376#\210\305\377\201@#\210\305\201A\201B\201C\201D\"\210\201E#\210\305	\201F\307\360\201GBBB#\210)\201H\n\201I\201J\201K$\210\201H\n\201L\201M\201N$\207" [menu gud-menu-map gud-tool-bar-map make-sparse-keymap "GDB-Windows" define-key [displays] menu-item (:visible (eq gud-minor-mode 'gdbmi)) [gdb] ("Gdb" . gdb-display-gdb-buffer) [threads] ("Threads" . gdb-display-threads-buffer) [memory] ("Memory" . gdb-display-memory-buffer) [disassembly] ("Disassembly" . gdb-display-disassembly-buffer) [registers] ("Registers" . gdb-display-registers-buffer) [inferior] ("IO" . gdb-display-io-buffer) [locals] ("Locals" . gdb-display-locals-buffer) [frames] ("Stack" . gdb-display-stack-buffer) [breakpoints] ("Breakpoints" . gdb-display-breakpoints-buffer) "GDB-Frames" [frames] (:visible (eq gud-minor-mode 'gdbmi)) [gdb] ("Gdb" . gdb-frame-gdb-buffer) [threads] ("Threads" . gdb-frame-threads-buffer) [memory] ("Memory" . gdb-frame-memory-buffer) [disassembly] ("Disassembly" . gdb-frame-disassembly-buffer) [registers] ("Registers" . gdb-frame-registers-buffer) [inferior] ("IO" . gdb-frame-io-buffer) [locals] ("Locals" . gdb-frame-locals-buffer) [frames] ("Stack" . gdb-frame-stack-buffer) [breakpoints] ("Breakpoints" . gdb-frame-breakpoints-buffer) "GDB-MI" [gdb-customize] (menu-item "Customize" (lambda nil (interactive) (customize-group 'gdb)) :help "Customize Gdb Graphical Mode options.") [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.") [sep1] (menu-item "--") [all-threads] (menu-item "GUD controls all threads" (lambda nil (interactive) (setq gdb-gud-control-all-threads t)) :help "GUD start/stop commands apply to all threads" :button (:radio . gdb-gud-control-all-threads)) [current-thread] (menu-item "GUD controls current thread" (lambda nil (interactive) (setq gdb-gud-control-all-threads nil)) :help "GUD start/stop commands apply to current thread only" :button (:radio not gdb-gud-control-all-threads)) [sep2] (menu-item "--") [gdb-customize-reasons] (menu-item "Customize switching..." (lambda nil (interactive) (customize-option 'gdb-switch-reasons))) [gdb-switch-when-another-stopped] defalias gdb-toggle-switch-when-another-stopped #[(&optional interactively) "\303\304!\210\304\305N\206\306\304\307N\206\310\211\304\304!?\"*\203'\311\312\313\"\210\202,\311\312\314\"\210\n\2053\315\304!\207" [get set interactively custom-load-symbol gdb-switch-when-another-stopped custom-set set-default custom-get default-value message "GDB thread switching %s" "enabled globally" "disabled globally" customize-mark-as-set] 5 "Toggle whether to switch to stopped thread.\nIn an interactive call, record this option as a candidate for saving\nby \"Save Options\" in Custom buffers." "p"] (menu-item "Automatically switch to stopped thread" gdb-toggle-switch-when-another-stopped :help "Switch to stopped thread" :button (:toggle and (default-boundp 'gdb-switch-when-another-stopped) (default-value 'gdb-switch-when-another-stopped))) [mi] (:visible (eq gud-minor-mode 'gdbmi)) define-key-after [all-threads] (menu-item "Switch to non-stop/A mode" gdb-control-all-threads :image (find-image '((:type xpm :file "gud/thread.xpm"))) :visible (and (eq gud-minor-mode 'gdbmi) gdb-non-stop (not gdb-gud-control-all-threads))) run [current-thread] (menu-item "Switch to non-stop/T mode" gdb-control-current-thread :image (find-image '((:type xpm :file "gud/all.xpm"))) :visible (and (eq gud-minor-mode 'gdbmi) gdb-non-stop gdb-gud-control-all-threads)) all-threads] 7)
#@38 Display GUD buffer in another frame.
(defalias 'gdb-frame-gdb-buffer #[nil "\301!\207" [gud-comint-buffer display-buffer-other-frame] 2 (#$ . 164389) nil])
#@21 Display GUD buffer.
(defalias 'gdb-display-gdb-buffer #[nil "\301\302\303#\207" [gud-comint-buffer pop-to-buffer nil 0] 4 (#$ . 164552) nil])
#@147 Set buffer of selected window to NAME and dedicate window.

When IGNORE-DEDICATED is non-nil, buffer is set even if selected
window is dedicated.
(defalias 'gdb-set-window-buffer #[(name &optional ignore-dedicated window) "\204\303 	\203\304\305\"\210\306\307\n!\"\210\304\310\"\207" [window ignore-dedicated name selected-window set-window-dedicated-p nil set-window-buffer get-buffer t] 4 (#$ . 164702)])
#@51 Layout the window pattern for `gdb-many-windows'.
(defalias 'gdb-setup-windows #[nil "\306\307!\210\306\310!\210\306\311!\210\312\313 \314\"\210\315!\210\316 \210\313 \317\314\320 \321_\322\245\"\317\314\320 \321\245\"\323 \324\325 \314	#\210\326\n!\210\327\n
\203I\330
@!\202W\203U\330!\202W\331 \"\210\313 \323  \324\306\332!\314 #\210)\326!\210\324\333 !\210\323 !\324\"\203\203\334 \202\205\335 \314!#\210)\326\f!,\207" [gud-comint-buffer win3 win2 win1 win0 gud-last-last-frame gdb-get-buffer-create gdb-locals-buffer gdb-stack-buffer gdb-breakpoints-buffer set-window-dedicated-p selected-window nil switch-to-buffer delete-other-windows split-window window-height 3 4 split-window-right gdb-set-window-buffer gdb-locals-buffer-name select-window set-window-buffer gud-find-file list-buffers-noselect gdb-inferior-io gdb-stack-buffer-name gdb-threads-buffer-name gdb-breakpoints-buffer-name gdb-main-file gdb-source-window win4 win5 gdb-show-threads-by-default] 6 (#$ . 165124)])
#@274 Non-nil if Gdb-Many-Windows mode is enabled.
See the command `gdb-many-windows' for a description of this minor mode.
Setting this variable directly does not take effect;
either customize it (see the info node `Easy Customization')
or call the function `gdb-many-windows'.
(custom-declare-variable 'gdb-many-windows nil '(#$ . 166140) :set 'custom-set-minor-mode :initialize 'custom-initialize-default :group 'gdb :type 'boolean :version "22.1")
#@268 If nil just pop 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 debugged program.  Non-nil means display the layout shown for
`gdb'.
(defalias 'gdb-many-windows #[(&optional arg) "\304 	\305=\203\n?\202\306	!\307V\203#\310!\203#\311\312\313\217\210\314\315\n\203-\316\202.\317\"\210\320\321!\203S\322\302!\210\304 \203F\304 \232\203S\323\324\n\203P\325\202Q\326\"\210)\327 \210\n\207" [#1=#:last-message arg gdb-many-windows gud-comint-buffer current-message toggle prefix-numeric-value 0 buffer-name nil (gdb-restore-windows) ((error)) run-hooks gdb-many-windows-hook gdb-many-windows-on-hook gdb-many-windows-off-hook called-interactively-p any customize-mark-as-set message "Gdb-Many-Windows mode %sabled" "en" "dis" force-mode-line-update] 3 (#$ . 166593) (list (or current-prefix-arg 'toggle))])
(byte-code "\301\302\303\304\300!\205\n\303\211%\207" [gdb-many-windows-map add-minor-mode gdb-many-windows nil boundp] 6)
#@116 Restore the basic arrangement of windows used by gdb.
This arrangement depends on the value of `gdb-many-windows'.
(defalias 'gdb-restore-windows #[nil "\306!\210\307 \210	\203\310 \207\n\204\2050\311 \312\f\n\203&\313\n@!\202)\313
!\"\210\f\211\f)\207" [gud-comint-buffer gdb-many-windows gud-last-last-frame gdb-show-main win gdb-main-file switch-to-buffer delete-other-windows gdb-setup-windows split-window set-window-buffer gud-find-file gdb-source-window] 4 (#$ . 167678) 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\203\f\310!\210)\311 \312\211\203P\n@\211=\204Ir	q\210\f\313=\203H\314\315\316 \"\2038\317\312!\210\202H\320ed\321#\210\312\322\323!\210\322\324!\210)\nA\211\204*\312\325\305\"\326 \312\325\327\"\312\325\330\"\331\332!\203z\333 \210\312\211!\"\334\335\336\321#\207" [pty buffer --dolist-tail-- gud-comint-buffer gud-minor-mode gdb-disassembly-position get-process "gdb-inferior" delete-process buffer-list nil gdbmi 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 gdb-thread-position boundp speedbar-frame speedbar-timer-fn remove-hook after-save-hook gdb-create-define-alist overlay-arrow-variable-list fringe-indicator-alist gud-running gdb-active-process] 5 (#$ . 168180)])
#@97 Find the source file where the program starts and display it with related
buffers, if required.
(defalias 'gdb-get-source-file #[nil "eb\210\305\306\307#\203\310\311!\n\203\312 \210\202+\313\314!\210\203+	\203+\315\316	!!\210\317\320\321\322\f#!\207" [gdb-source-file-regexp gdb-main-file gdb-many-windows gdb-show-main font-lock-variable-name-face re-search-forward nil t match-string 1 gdb-setup-windows gdb-get-buffer-create gdb-breakpoints-buffer display-buffer gud-find-file gdb-force-mode-line-update propertize "ready" face] 5 (#$ . 169190)])
#@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 (#$ . 169757)])
#@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\205'\f@\307\310\"\203\311!\210\fA\211\204\306*\207" [buffer start end overlay --dolist-tail-- overlays-in nil overlay-get put-break delete-overlay] 4 (#$ . 170425)])
(defalias 'gdb-put-breakpoint-icon #[(enabled bptno &optional line) "\306\206\307 !\211@S	AT\f\203\310\202\311\312p\313\",\314\313\315\316
$\210\f\203;\314\313\315\317-\320BB
$\210\202G\314\313\315\317-\321BB
$\210\322\n\"\210\323 \203\354.\206e,\203c\324,!@\206e/\325Y\203\204\326\327\nT\330\331\f\203x\332\202y\333E\317-\334\f&\2020\335W\203\236r\3350,\203\235\336,01#\210)\337\f\203\3052\206\344\340\341\342\3433\344BBBB\341\345\3434\346BBBBD!\2112\202\3445\206\344\340\341\342\3433\347BBBB\341\345\3436\350BBBBD!\2115\nT
\351$\2020\335W\203r\3350\312p\313\"\2117\203\n\336701#\210*\326\352
\353\f\203\332\202\333#\nT\"-\207" [line posns start end enabled putstring gdb-line-posns line-number-at-pos "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 source-window bptno 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])
#@139 Completion table for GDB/MI commands.
COMMAND is the prefix for which we seek completion.
CONTEXT is the text before COMMAND on the line.
(defalias 'gud-gdbmi-completions #[(context command) "\306\307G\307\310\307r\311\312!q\210\313\314Q\315\"\210\203,\316\317!!\210\202)\320!.\207" [context complete-list gud-marker-filter gud-gdb-fetched-lines gud-gdb-fetch-lines-break gud-gdb-fetch-lines-string t nil gud-gdbmi-fetch-lines-filter gdb-get-buffer gdb-partial-output-buffer gdb-input "complete " #[nil "\301\211\207" [gud-gdb-fetch-lines-in-progress nil] 2] accept-process-output get-buffer-process gud-gdb-completions-1 gud-gdb-fetch-lines-in-progress command gud-comint-buffer] 6 (#$ . 172744)])
#@53 Custom filter function for `gud-gdbmi-completions'.
(defalias 'gud-gdbmi-fetch-lines-filter #[(string) "\304	!P\305\306	\"\203	\n\307\224OB	\307\225\310O\202\311\207" [gud-gdb-fetch-lines-string string gud-gdb-fetch-lines-break gud-gdb-fetched-lines gud-gdbmi-marker-filter string-match "\n" 0 nil ""] 3 (#$ . 173470)])
(provide 'gdb-mi)

MMCT - 2023