;ELC   
;;; Compiled by root@bugs.build.redhat.com on Fri Feb  4 11:20:41 2005
;;; from file /usr/src/build/514901-i386/BUILD/emacs-21.3/lisp/gud.el
;;; in Emacs version 21.3.1
;;; with bytecomp version 2.85.4.1
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.
(if (and (boundp 'emacs-version)
	 (< (aref emacs-version (1- (length emacs-version))) ?A)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.29")))
    (error "`gud.el' was compiled for Emacs 19.29 or later"))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(byte-code "\300\301!\210\300\302!\210\303\304\305\306\307\310\307\311&\207" [require comint etags custom-declare-group gud nil "Grand Unified Debugger mode for gdb and other debuggers under Emacs.\nSupported debuggers include gdb, sdb, dbx, xdb, perldb, pdb (Python), and jdb." :group unix tools] 8)
#@48 Prefix of all GUD commands valid in C buffers.
(custom-declare-variable 'gud-key-prefix '"" '(#$ . 930) :type 'string :group 'gud)
(byte-code "\305\306P\307\"\210\310	\311\312#\210\303\nB\313\303!\204 \314\315\303\316\317#\210\304\nB\313\304!\204+ \314\315\304\316\317#\207" [gud-key-prefix ctl-x-map current-load-list gud-marker-filter gud-find-file global-set-key "\f" gud-refresh define-key " " gud-break boundp nil put permanent-local t] 4)
(defalias 'gud-marker-filter #[(&rest args) "\302	\"\207" [gud-marker-filter args apply] 3])
(byte-code "\301B\302\301!\204\f \303\304\301\305\306#\207" [current-load-list gud-minor-mode boundp nil put permanent-local t] 4)
#@205 Return the symbol used for SYM in MINOR-MODE.
MINOR-MODE defaults to `gud-minor-mode.
The symbol returned is `gud-<MINOR-MODE>-<SYM>'.
If SOFT is non-nil, returns nil if the symbol doesn't already exist.
(defalias 'gud-symbol #[(sym &optional soft minor-mode) "\204\f 	\204\f \304\305!\210\n\203 \306\202 \307\310\311\206 	#!\207" [minor-mode gud-minor-mode soft sym error "Gud internal error" intern-soft intern format "gud-%s-%s"] 5 (#$ . 1618)])
#@56 Return the value of `gud-symbol' SYM.  Default to nil.
(defalias 'gud-val #[(sym &optional minor-mode) "\302\303	#\304!\205 J)\207" [sym minor-mode gud-symbol t boundp] 4 (#$ . 2079)])
(defalias 'gud-find-file #[(file) "\305\306\"\203 \307\310\311\211$\202  	\n!\205' rq\210\312\301!\fL\210)*\207" [file gud-minor-mode gud-find-file buf minor-mode string-match "//+" replace-match "/" t make-local-variable] 5])
#@22 Menu for `gud-mode'.
(defconst gud-menu-map (byte-code "\301\302\303\304\300!\205\n \305\306D$\207" [gud-menu-map easy-mmode-define-keymap (([refresh] "Refresh" . gud-refresh) ([remove] "Remove Breakpoint" . gud-remove) ([tbreak] menu-item "Temporary Breakpoint" gud-tbreak :enable (memq gud-minor-mode '(gdb sdb xdb))) ([break] "Set Breakpoint" . gud-break) ([up] menu-item "Up Stack" gud-up :enable (memq gud-minor-mode '(gdb dbx xdb))) ([down] menu-item "Down Stack" gud-down :enable (memq gud-minor-mode '(gdb dbx xdb))) ([print] "Print Expression" . gud-print) ([finish] menu-item "Finish Function" gud-finish :enable (memq gud-minor-mode '(gdb xdb))) ([stepi] "Step Instruction" . gud-stepi) ([step] "Step Line" . gud-step) ([next] "Next Line" . gud-next) ([cont] "Continue" . gud-cont)) nil boundp :name "Gud"] 6) (#$ . 2512))
#@28 Map used in visited files.
(defconst gud-minor-mode-map (byte-code "\302\303\304BBC\305\306\301!\205 	\305$\207" [gud-menu-map gud-minor-mode-map easy-mmode-define-keymap [menu-bar debug] "Gud" nil boundp] 5) (#$ . 3353))
(byte-code "\303\236\211\203 	\n\241\210\202 \303\nBB)\303\207" [minor-mode-map-alist m gud-minor-mode-map gud-minor-mode] 3)
#@20 `gud-mode' keymap.
(defvar gud-mode-map (make-sparse-keymap) (#$ . 3715))
#@893 Define FUNC to be a command sending STR and bound to KEY, with
optional doc string DOC.  Certain %-escapes in the string arguments
are interpreted specially if present.  These are:

  %f	name (without directory) of current source file.
  %F	name (without directory or extension) of current source file.
  %d	directory of current source file.
  %l	number of current source line
  %e	text of the C lvalue or function-call expression surrounding point.
  %a	text of the hexadecimal address surrounding point
  %p	prefix argument to the command (if any) as a number

  The `current' source file is the file of the current buffer (if
we're in a C file) or the source file current at the last break or
step (if we're in the GUD buffer).
  The `current' line is that of the current buffer (if we're in a
source file) or the source line number at the last break or step (if
we're in the GUD buffer).
(defalias 'gud-def '(macro . #[(func cmd key &optional doc) "\304\305\306	\206	 \307\310\311\n\312E\257\205 \313\314\315P\316DF\205* \317\320\321E\316DEF\207" [func doc cmd key progn defun (arg) "" (interactive "p") gud-call arg define-key (current-local-map) "" quote global-set-key concat gud-key-prefix] 9 (#$ . 3796)]))
(byte-code "\301B\303\301!\204\f \304\302B\303\302!\204 \304\304\207" [current-load-list gud-last-frame gud-last-last-frame boundp nil] 2)
#@27 The last GUD buffer used.
(defvar gud-last-speedbar-buffer nil (#$ . 5174))
#@116 Description of the currently displayed GUD stack.
t means that there is no stack, and we are in display-file mode.
(defvar gud-last-speedbar-stackframe nil (#$ . 5257))
#@47 Keymap used when in the buffers display mode.
(defvar gud-speedbar-key-map nil (#$ . 5432))
#@62 Install those variables used by speedbar to enhance gud/gdb.
(defalias 'gud-install-speedbar-variables #[nil "?\205 \301 \302\303\304#\210\302\305\304#\210\302\306\304#\207" [gud-speedbar-key-map speedbar-make-specialized-keymap define-key "j" speedbar-edit-line "e" ""] 4 (#$ . 5530)])
#@53 Additional menu items to add to the speedbar frame.
(defvar gud-speedbar-menu-items '(["Jump to stack frame" speedbar-edit-line t]) (#$ . 5830))
(byte-code "\300\301!\203\f \302 \210\202 \303\304\302\"\210\300\207" [featurep speedbar gud-install-speedbar-variables add-hook speedbar-load-hook] 3)
#@162 Create a speedbar display based on the current state of GUD.
If the GUD BUFFER is not running a supported debugger, then turn
off the specialized speedbar mode.
(defalias 'gud-speedbar-buttons #[(buffer) "\212eb\210\306\307!)\205 	\232?\205\216 \n\212\nq\210\f)\211\310=\203' \311\n!\202, \312\n!\210\313\314 \210\204< \315c\210\202? \316c\210\203\212 @A@\317\261\210@G\320U\203f \321@@\322\313\211\211\323&\210\202\201 \321@@\324\325\310=\203w \326\202z \327\330!@\323&\210A\211\204D *\211\207" [gud-last-last-frame gud-last-speedbar-stackframe buffer gud-last-speedbar-buffer gud-find-file ff looking-at "Current Stack" gud-gdb-find-file gud-gdb-get-stackframe speedbar-remove-localized-speedbar-support nil erase-buffer "No Stack frames\n" "Current Stack:\n" ":\n" 2 speedbar-insert-button speedbar-directory-face t speedbar-file-face speedbar-highlight-face gud-gdb-goto-stackframe error "Should never be here" frames] 8 (#$ . 6135)])
(byte-code "\301B\302\301!\204\f \303\303\207" [current-load-list gud-gdb-history boundp nil] 2)
(defalias 'gud-gdb-massage-args #[(file args) "\302\303\304	!\305E\"\207" [args default-directory append "-cd" expand-file-name "-fullname"] 5])
(byte-code "\301B\303\301!\204\f \304\302B\303\302!\204 \305\306\302!\207" [current-load-list gud-gdb-marker-regexp gud-marker-acc boundp "\\(.:?[^:\n]*\\):\\([0-9]*\\):.*\n" "" make-variable-buffer-local] 2)
(defalias 'gud-gdb-marker-filter #[(string) "	P\305\306\"\203. \307\224\307\225O\310\311\224\311\225O!B\n\312\211\224OP\312\225\313O\202 \306\314\"\203F \n\312\211\224OP\312\224\313O\202L \nP\305\n)\207" [gud-marker-acc string output gud-gdb-marker-regexp gud-last-frame "" string-match 1 string-to-int 2 0 nil ".*\\'"] 5])
(defalias 'gud-gdb-find-file #[(f) "\301\302\"\207" [f find-file-noselect nowarn] 3])
#@57 Keymap for minibuffer prompting of gud startup command.
(defconst gud-minibuffer-local-map (byte-code "\302\303\304\305\300!\205\n \306	D$\207" [gud-minibuffer-local-map minibuffer-local-map easy-mmode-define-keymap (("	" . comint-dynamic-complete-filename)) nil boundp :inherit] 6) (#$ . 8007))
(defalias 'gud-query-cmdline #[(minor-mode &optional init) "\305\306\307#\310\311\"\312	!\204 	\307L\210\313\314\315\"	J\242\206* \n\206' \316!\317Q\f\307	%*\207" [minor-mode hist-sym cmd-name init gud-minibuffer-local-map gud-symbol history nil gud-val command-name boundp read-from-minibuffer format "Run %s (like this): " symbol-name " "] 6])
#@160 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.
(defalias 'gdb #[(command-line) "\304\305\306\307$\210\310\311!\312L\210\313\314M\210\315\316 \317\313#\210\320	\321P\313\"\210\322\323M\210\315\316 \324\322#\210\320	\325P\322\"\210\326\327M\210\315\316 \330\326#\210\320	\331P\326\"\210\332\333M\210\315\316 \334\332#\210\320	\335P\332\"\210\336\337M\210\315\316 \340\336#\210\320	\341P\336\"\210\342\343M\210\315\316 \344\342#\210\320	\345P\342\"\210\346\347M\210\315\316 \350\346#\210\320	\351P\346\"\210\352\353M\210\315\316 \354\352#\210\320	\355P\352\"\210\356\357M\210\315\316 \360\356#\210\320	\361P\356\"\210\362\363M\210\315\316 \364\362#\210\320	\365P\362\"\210\366\367M\210\315\316 \370\366#\210\320	\371P\366\"\210\372\341\373\"\210\372\374\375\"\210\372\376\377\"\210\372\201@ \201A \"\210\372\201B \201C \"\210\201D \201D \201E \201F !\207" [command-line gud-key-prefix comint-prompt-regexp paragraph-start gud-common-init gud-gdb-massage-args gud-gdb-marker-filter gud-gdb-find-file make-local-variable gud-minor-mode gdb gud-break #[(arg) "\301\302\"\207" [arg gud-call "break %f:%l"] 3 "Set breakpoint at current line." "p"] define-key current-local-map "" global-set-key "" gud-tbreak #[(arg) "\301\302\"\207" [arg gud-call "tbreak %f:%l"] 3 "Set temporary breakpoint at current line." "p"] "" "" gud-remove #[(arg) "\301\302\"\207" [arg gud-call "clear %f:%l"] 3 "Remove breakpoint at current line" "p"] "" "" gud-step #[(arg) "\301\302\"\207" [arg gud-call "step %p"] 3 "Step one source line with display." "p"] "" "" gud-stepi #[(arg) "\301\302\"\207" [arg gud-call "stepi %p"] 3 "Step one instruction with display." "p"] "	" "	" gud-next #[(arg) "\301\302\"\207" [arg gud-call "next %p"] 3 "Step one line (skip functions)." "p"] "" "" gud-cont #[(arg) "\301\302\"\207" [arg gud-call "cont"] 3 "Continue with display." "p"] "" "" gud-finish #[(arg) "\301\302\"\207" [arg gud-call "finish"] 3 "Finish executing current function." "p"] "" "" gud-up #[(arg) "\301\302\"\207" [arg gud-call "up %p"] 3 "Up N stack frames (numeric arg)." "p"] "<" "<" gud-down #[(arg) "\301\302\"\207" [arg gud-call "down %p"] 3 "Down N stack frames (numeric arg)." "p"] ">" ">" gud-print #[(arg) "\301\302\"\207" [arg gud-call "print %e"] 3 "Evaluate C expression at point." "p"] "" "" local-set-key gud-gdb-complete-command [menu-bar debug tbreak] ("Temporary Breakpoint" . gud-tbreak) [menu-bar debug finish] ("Finish Function" . gud-finish) [menu-bar debug up] ("Up Stack" . gud-up) [menu-bar debug down] ("Down Stack" . gud-down) "^(.*gdb[+]?) *" run-hooks gdb-mode-hook] 5 (#$ . 8665) (list (gud-query-cmdline 'gdb))])
(byte-code "\302B\303B\304B\305B\301B\306\301!\204 \307\307\207" [current-load-list gud-comint-buffer gud-gdb-complete-in-progress gud-gdb-complete-string gud-gdb-complete-break gud-gdb-complete-list boundp nil] 2)
#@159 Perform completion on the GDB command preceding point.
This is implemented using the GDB `complete' command which isn't
available with older versions of GDB.
(defalias 'gud-gdb-complete-command #[nil "`\306 {\307\310\311	\"\210\312\224	\307O\313\314\315	P!\210\316\307\307\2034 \317\320!!\210\202& )\203G \310\321@\"\203G \322\323!\210\324\325\"\211\211A \203~  @@\230\203q  A\211\241\210\202U  A\211\204Z *G\326U\203\272 @\327\211!\"#\310\330#\"#\203\250 !T!\327\225\"\202\222 \331!\312\"\326U\203\271 #\332PC+\333\n\"+\207" [end command command-word gud-gdb-complete-break gud-marker-filter gud-gdb-complete-in-progress comint-line-beginning-position nil string-match "\\(\\`\\| \\)\\([^ ]*\\)\\'" 2 gud-gdb-complete-filter gud-basic-call "complete " t accept-process-output get-buffer-process "^Undefined command: \"complete\"" error "This version of GDB doesn't support the `complete' command" sort string-lessp 1 0 "\\([^'\\]\\|\\\\'\\)*'" mod "'" comint-dynamic-simple-complete gud-gdb-complete-string gud-gdb-complete-list gud-comint-buffer second first count pos str] 5 (#$ . 11673) nil])
(defalias 'gud-gdb-complete-filter #[(string) "	P\306\307	\"\203 	\n\310\224OB	\310\225\311O\202 \306\f	\"\203' \311	\207	\312\207" [gud-gdb-complete-string string gud-gdb-complete-break gud-gdb-complete-list comint-prompt-regexp gud-gdb-complete-in-progress string-match "\n" 0 nil ""] 3])
#@59 Goto the stackframe described by TEXT, TOKEN, and INDENT.
(defalias 'gud-gdb-goto-stackframe #[(text token indent) "\304 \305\216\306	!\210\307\n!\210\310\311A@P!\210\312\313!\210\314 *\207" [save-selected-window-window speedbar-update-speed speedbar-attached-frame token selected-window ((byte-code "\301!\203\n \302!\210\301\207" [save-selected-window-window window-live-p select-window] 2)) speedbar-set-timer select-frame gud-basic-call "frame " sit-for 1 speedbar-maybee-jump-to-attached-frame] 3 (#$ . 13138)])
#@40 Stack frames we are fetching from GDB.
(defvar gud-gdb-fetched-stack-frame nil (#$ . 13665))
#@48 List of stack frames we are fetching from GDB.
(defvar gud-gdb-fetched-stack-frame-list nil (#$ . 13764))
#@60 Extract the current stack frame out of the GUD GDB BUFFER.
(defalias 'gud-gdb-get-stackframe #[(buffer) "\306\211\307\310\n\"\210@\205 \311\312@\"?\205| \203z @\306\211\311\313\"\204M \311\314\"\204M \311\315\"\203r 	\211@@	@A@\316\317\"\316\320\"F\240\210\202r \316\317\"\316\320\"\311\315\"\203l \f\316\317\"\316\320\"F\202o \fD	B+A\211\204 	\237*\207" [gud-gdb-fetched-stack-frame-list newlst buffer num name e nil gud-gdb-run-command-fetch-lines "backtrace" string-match "No stack" "^#\\([0-9]+\\) +[0-9a-fx]+ in \\([:0-9a-zA-Z_]+\\) (" "^#\\([0-9]+\\) +\\([:0-9a-zA-Z_]+\\) (" "at \\([-0-9a-zA-Z_.]+\\):\\([0-9]+\\)$" match-string 1 2] 8 (#$ . 13876)])
#@128 Run COMMAND, and return when `gud-gdb-fetched-stack-frame-list' is full.
BUFFER is the GUD buffer in which to run the command.
(defalias 'gud-gdb-run-command-fetch-lines #[(command buffer) "\212q\210\212db\210\306y\210\307	!)??\2059 \310\311!\210\312\313\313\f\203/ \314\315!!\210\202! \313\237\211))\207" [buffer comint-prompt-regexp gud-marker-filter command gud-gdb-complete-in-progress gud-gdb-complete-string 0 looking-at gud-gdb-speedbar-stack-filter gud-basic-call t nil accept-process-output get-buffer-process gud-gdb-complete-list gud-comint-buffer gud-gdb-fetched-stack-frame gud-gdb-fetched-stack-frame-list] 3 (#$ . 14569)])
#@47 Filter used to read in the current GDB stack.
(defalias 'gud-gdb-speedbar-stack-filter #[(string) "	P\306\307	\"\203 	\310\211\224O\nB	\310\225\311O\202 \306	\"\203' \311	\207	\312\207" [gud-gdb-fetched-stack-frame string gud-gdb-fetched-stack-frame-list comint-prompt-regexp gud-gdb-complete-in-progress gud-gdb-complete-string string-match "\n" 0 nil ""] 3 (#$ . 15228)])
(byte-code "\301B\302\301!\204\f \303\303\207" [current-load-list gud-sdb-history boundp nil] 2)
#@69 If nil, we're on a System V Release 4 and don't need the tags hack.
(defvar gud-sdb-needs-tags (byte-code "\300\301!?\207" [file-exists-p "/var"] 2) (#$ . 15717))
(byte-code "\301B\302\301!\204\f \303\303\207" [current-load-list gud-sdb-lastfile boundp nil] 2)
(defalias 'gud-sdb-massage-args #[(file args) "\207" [args] 1])
(defalias 'gud-sdb-marker-filter #[(string) "\203\n 	P\202 	\305\306\307\n#\203* \310\224\310\225O\311\312\224\312\225O!B\211\202y \306\313\n#\203H \314\224\314\225O\211\311\310\224\310\225O!B\211\202y \306\315\n#\203[ \314\224\314\225O\211\202y \f\203v \306\316\n#\203v \f\311\317\224\317\225O!B\211\202y \305\211\203\202 \320\225\202 \306\321\n#\203\220 \320\225\202\202 \n\206\226 \320\305O)	\207" [gud-marker-acc string start gud-last-frame gud-sdb-lastfile nil string-match "\\(^\\|\n\\)\\*?\\(0x\\w* in \\)?\\([^:\n]*\\):\\([0-9]*\\):.*\n" 3 string-to-int 4 "^\\(BREAKPOINT\\|STEPPED\\) process [0-9]+ function [^ ]+ in \\(.+\\)\n\\([0-9]+\\):" 2 "^\\(BREAKPOINT\\|STEPPED\\) process [0-9]+ function [^ ]+ in \\(.+\\)\n" "^\\([0-9]+\\):" 1 0 "\n"] 6])
(defalias 'gud-sdb-find-file #[(f) "\203 \302	!\207\303	!\207" [gud-sdb-needs-tags f find-tag-noselect find-file-noselect] 2])
#@160 Run sdb on program FILE in buffer *gud-FILE*.
The directory containing FILE becomes the initial working directory
and source-file directory for your debugger.
(defalias 'sdb #[(command-line) "\203 \306\301!\203 	;\203 \307	!\204 \310\311!\210\312\n\313\314\315$\210\316\317!\320L\210\321\322M\210\323\324 \325\321#\210\326\327P\321\"\210\330\331M\210\323\324 \332\330#\210\326\333P\330\"\210\334\335M\210\323\324 \336\334#\210\326\337P\334\"\210\340\341M\210\323\324 \342\340#\210\326\343P\340\"\210\344\345M\210\323\324 \346\344#\210\326\347P\344\"\210\350\351M\210\323\324 \352\350#\210\326\353P\350\"\210\354\355M\210\323\324 \356\354#\210\326\357P\354\"\210\360\361M\210\323\324 \362\360#\210\326\363P\360\"\210\364\364\365\366\367\"\210\370\371!\207" [gud-sdb-needs-tags tags-file-name command-line gud-key-prefix comint-prompt-regexp paragraph-start boundp file-exists-p error "The sdb support requires a valid tags table to work" gud-common-init gud-sdb-massage-args gud-sdb-marker-filter gud-sdb-find-file make-local-variable gud-minor-mode sdb gud-break #[(arg) "\301\302\"\207" [arg gud-call "%l b"] 3 "Set breakpoint at current line." "p"] define-key current-local-map "" global-set-key "" gud-tbreak #[(arg) "\301\302\"\207" [arg gud-call "%l c"] 3 "Set temporary breakpoint at current line." "p"] "" "" gud-remove #[(arg) "\301\302\"\207" [arg gud-call "%l d"] 3 "Remove breakpoint at current line" "p"] "" "" gud-step #[(arg) "\301\302\"\207" [arg gud-call "s %p"] 3 "Step one source line with display." "p"] "" "" gud-stepi #[(arg) "\301\302\"\207" [arg gud-call "i %p"] 3 "Step one instruction with display." "p"] "	" "	" gud-next #[(arg) "\301\302\"\207" [arg gud-call "S %p"] 3 "Step one line (skip functions)." "p"] "" "" gud-cont #[(arg) "\301\302\"\207" [arg gud-call "c"] 3 "Continue with display." "p"] "" "" gud-print #[(arg) "\301\302\"\207" [arg gud-call "%e/"] 3 "Evaluate C expression at point." "p"] "" "" "\\(^\\|\n\\)\\*" local-set-key [menu-bar debug tbreak] ("Temporary Breakpoint" . gud-tbreak) run-hooks sdb-mode-hook] 5 (#$ . 16967) (list (gud-query-cmdline 'sdb))])
(byte-code "\301B\302\301!\204\f \303\303\207" [current-load-list gud-dbx-history boundp nil] 2)
#@244 *A list of directories that dbx should search for source code.
If nil, only source files in the program directory
will be known to dbx.

The file names should be absolute, or relative to the directory
containing the executable being debugged.
(custom-declare-variable 'gud-dbx-directories 'nil '(#$ . -19222) :type '(choice (const :tag "Current Directory" nil) (repeat :value ("") directory)) :group 'gud)
(defalias 'gud-dbx-massage-args #[(file args) "\304\211\203 \n@\305	BB\nA\211\204 	\237*\244\207" [gud-dbx-directories result directories args nil "-I"] 4])
#@67 Transform a relative file name to an absolute file name, for dbx.
(defalias 'gud-dbx-file-name #[(f) "\305\306	!\203 \307	!\2020 \n\211\203/ @\310	Q\306\f!\203' \307\f!\305)A\211\204 ))\207" [result f gud-dbx-directories directories path nil file-exists-p expand-file-name "/"] 4 (#$ . 19799)])
(defalias 'gud-dbx-marker-filter #[(string) "\203\n 	P\202 	\304\305\306\n#\204 \305\307\n#\2034 \310\224\310\225O\311\312\224\312\225O!B\313\225\202 \305\314\n#\203B \313\225\2024 \305\315\n#\205O \313\224\304O)	\207" [gud-marker-acc string start gud-last-frame nil string-match "stopped in .* at line \\([0-9]*\\) in file \"\\([^\"]*\\)\"" "signal .* in .* at line \\([0-9]*\\) in file \"\\([^\"]*\\)\"" 2 string-to-int 1 0 "\n" "\\(stopped\\|signal\\)"] 5])
#@69 Non-nil to assume the MIPS/OSF dbx conventions (argument `-emacs').
(defvar gud-mips-p (byte-code "\301\302\"\206 \301\303\"\206 \301\304\"\206 \301\305\"\207" [system-configuration string-match "^mips-[^-]*-ultrix" "^mips-[^-]*-riscos" "^mips-[^-]*-osf1" "^alpha[^-]*-[^-]*-osf"] 3) (#$ . 20591))
(defalias 'gud-mipsdbx-massage-args #[(file args) "\301B\207" [args "-emacs"] 2])
(defalias 'gud-mipsdbx-marker-filter #[(string) "	P\304\305\306\"\203. \307\224\307\225O\310\311\224\311\225O!B\n\312\211\224OP\312\225\313O\202 \305\314\"\203F \n\312\211\224OP\312\224\313O\202L \nP\304\n)\207" [gud-marker-acc string output gud-last-frame "" string-match "[][ 0-9]*\\([^:\n]*\\):\\([0-9]*\\):.*\n" 1 string-to-int 2 0 nil "[][ 0-9]*.*\\'"] 5])
#@164 Non-nil to assume the interface appropriate for IRIX dbx.
This works in IRIX 4, 5 and 6, but `gud-dbx-use-stopformat-p' provides
a better solution in 6.1 upwards.
(defvar gud-irix-p (byte-code "\301\302\"\205\f \301\303\"?\207" [system-configuration string-match "^mips-[^-]*-irix" "irix[6-9]\\.[1-9]"] 3) (#$ . 21371))
#@157 Non-nil to use the dbx feature present at least from Irix 6.1
  whereby $stopformat=1 produces an output format compatiable with
  `gud-dbx-marker-filter'.
(defvar gud-dbx-use-stopformat-p (string-match "irix[6-9]\\.[1-9]" system-configuration) (#$ . 21700))
(defalias 'gud-irixdbx-marker-filter #[(string) "\306\211\307\n\"\204 \307\310\"\203 \fP\311\202 \fP	\203\221 \307\312	\"\2034 \313\314!\315\"\210\202\221 \307\316	\"\203a 	\317\224\317\225O\320!\203[ 	\317\224\317\225O\321	\322\224\322\225O!B)	\210\202\221 \307\323	\"\203\221 \324	\322\224\322\225O!\211\203\212 \320!\203\212 \321	\317\224\317\225O!B)	\325\211\224O	\206\226 \311*\207" [case-fold-search result comint-prompt-regexp string gud-marker-acc gud-comint-buffer nil string-match ".*\n" "" "^\\(\\[[0-9]+] \\)?Process +[0-9]+ ([^)]*) [^[]+\\[[^]\n]*]\n" process-send-string get-buffer-process "printf \"%1d:\",(int)$curline;file\n" "^[^ ][^[]*\\[\"\\([^\"]+\\)\":\\([0-9]+\\), [^]]+]\n" 1 file-exists-p string-to-int 2 "\\([0-9]*\\):\\(.*\\)\n" gud-dbx-file-name 0 file gud-last-frame] 6])
#@94 Non-nil means to assume the interface approriate for DG/UX dbx.
This was tested using R4.11.
(defvar gud-dgux-p (string-match "-dgux" system-configuration) (#$ . 22798))
(defalias 'gud-dguxdbx-marker-filter #[(string) "\203\n 	P\202 	\305\306\307\n#\203. \310\224\310\225O\311\312\224\312\225O!B\313\225\202 \307\314\n#\203< \313\225\202. \307\315\n#\205I \313\224\306O*	\207" [gud-marker-acc string start re gud-last-frame "^\\(\\(([0-9]+) \\)?Stopped at\\|Frame [0-9]+,\\) line \\([0-9]+\\), routine .*, file \\([^ 	\n]+\\)" nil string-match 4 string-to-int 3 0 "\n" "Stopped\\|Frame"] 5])
(defalias 'gud-dbx-find-file #[(f) "\212\302!\211\205\f \303	!*\207" [f realf gud-dbx-file-name find-file-noselect] 3])
#@160 Run dbx on program FILE in buffer *gud-FILE*.
The directory containing FILE becomes the initial working directory
and source-file directory for your debugger.
(defalias 'dbx #[(command-line) "\203 \306	\307\310\311$\210\2021 \n\203 \306	\312\313\311$\210\2021 \203* \306	\312\314\311$\210\2021 \306	\312\315\311$\210\316\317!\320L\210\203\206 \321\322M\210\323\324 \325\321#\210\326\f\327P\321\"\210\330\331M\210\323\324 \332\330#\210\326\f\333P\330\"\210\334\335M\210\323\324 \336\334#\210\326\f\337P\334\"\210\340\341M\210\323\324 \342\340#\210\326\f\343P\340\"\210\202\n\203\334 \334\344M\210\323\324 \336\334#\210\326\f\337P\334\"\210\340\345M\210\323\324 \342\340#\210\326\f\343P\340\"\210\321\346M\210\323\324 \325\321#\210\326\f\327P\321\"\210\330\347M\210\323\324 \332\330#\210\326\f\333P\330\"\210\350\351!\352\"\210\202\321\353M\210\323\324 \325\321#\210\326\f\327P\321\"\210\330\354M\210\323\324 \332\330#\210\326\f\333P\330\"\210\334\355M\210\323\324 \336\334#\210\326\f\337P\334\"\210@\203\350\351!\356\"\210\357\360M\210\323\324 \361\357#\210\326\f\362P\357\"\210\363\364M\210\323\324 \365\363#\210\326\f\366P\363\"\210\367\370M\210\323\324 \371\367#\210\326\f\372P\367\"\210\373\374M\210\323\324 \375\373#\210\326\f\376P\373\"\210\377\201C M\210\323\324 \201D \377#\210\326\f\201E P\377\"\210\201F \201G M\210\323\324 \201H \201F #\210\326\f\201I P\201F \"\210\201J A\201J B\201K \201L \201M \"\210\201K \201N \201O \"\210\201P \201Q !\207" [gud-mips-p command-line gud-irix-p gud-dgux-p gud-key-prefix gud-comint-buffer gud-common-init gud-mipsdbx-massage-args gud-mipsdbx-marker-filter gud-dbx-find-file gud-dbx-massage-args gud-irixdbx-marker-filter gud-dguxdbx-marker-filter gud-dbx-marker-filter make-local-variable gud-minor-mode dbx gud-up #[(arg) "\301\302\"\207" [arg gud-call "up %p"] 3 "Up (numeric arg) stack frames." "p"] define-key current-local-map "<" global-set-key "<" gud-down #[(arg) "\301\302\"\207" [arg gud-call "down %p"] 3 "Down (numeric arg) stack frames." "p"] ">" ">" gud-break #[(arg) "\301\302\"\207" [arg gud-call "stop at \"%f\":%l"] 3 "Set breakpoint at current line." "p"] "" "" gud-finish #[(arg) "\301\302\"\207" [arg gud-call "return"] 3 "Finish executing current function." "p"] "" "" #[(arg) "\301\302\"\207" [arg gud-call "stop at \"%d%f\":%l"] 3 "Set breakpoint at current line." "p"] #[(arg) "\301\302\"\207" [arg gud-call "return"] 3 "Finish executing current function." "p"] #[(arg) "\301\302\"\207" [arg gud-call "up %p; printf \"%1d:\",(int)$curline;file\n"] 3 "Up (numeric arg) stack frames." "p"] #[(arg) "\301\302\"\207" [arg gud-call "down %p; printf \"%1d:\",(int)$curline;file\n"] 3 "Down (numeric arg) stack frames." "p"] process-send-string get-buffer-process "printf \"%1d:\",(int)$curline;file\n" #[(arg) "\301\302\"\207" [arg gud-call "up %p"] 3 "Up (numeric arg) stack frames." "p"] #[(arg) "\301\302\"\207" [arg gud-call "down %p"] 3 "Down (numeric arg) stack frames." "p"] #[(arg) "\301\302\"\207" [arg gud-call "file \"%d%f\"\nstop at %l"] 3 "Set breakpoint at current line." "p"] "set $stopformat=1\n" gud-remove #[(arg) "\301\302\"\207" [arg gud-call "clear %l"] 3 "Remove breakpoint at current line" "p"] "" "" gud-step #[(arg) "\301\302\"\207" [arg gud-call "step %p"] 3 "Step one line with display." "p"] "" "" gud-stepi #[(arg) "\301\302\"\207" [arg gud-call "stepi %p"] 3 "Step one instruction with display." "p"] "	" "	" gud-next #[(arg) "\301\302\"\207" [arg gud-call "next %p"] 3 "Step one line (skip functions)." "p"] "" "" gud-cont gud-dbx-use-stopformat-p comint-prompt-regexp paragraph-start #[(arg) "\301\302\"\207" [arg gud-call "cont"] 3 "Continue with display." "p"] "" "" gud-print #[(arg) "\301\302\"\207" [arg gud-call "print %e"] 3 "Evaluate C expression at point." "p"] "" "" "^[^)\n]*dbx) *" local-set-key [menu-bar debug up] ("Up Stack" . gud-up) [menu-bar debug down] ("Down Stack" . gud-down) run-hooks dbx-mode-hook] 5 (#$ . 23537) (list (gud-query-cmdline 'dbx))])
(byte-code "\301B\302\301!\204\f \303\303\207" [current-load-list gud-xdb-history boundp nil] 2)
#@244 *A list of directories that xdb should search for source code.
If nil, only source files in the program directory
will be known to xdb.

The file names should be absolute, or relative to the directory
containing the executable being debugged.
(custom-declare-variable 'gud-xdb-directories 'nil '(#$ . -27677) :type '(choice (const :tag "Current Directory" nil) (repeat :value ("") directory)) :group 'gud)
(defalias 'gud-xdb-massage-args #[(file args) "\304\211\203 \n@\305	BB\nA\211\204 	\237*\244\207" [gud-xdb-directories result directories args nil "-d"] 4])
#@62 Transform a relative pathname to a full pathname in xdb mode
(defalias 'gud-xdb-file-name #[(f) "\305\306	!\203 \307	!\2020 \n\211\203/ @\310	Q\306\f!\203' \307\f!\305)A\211\204 ))\207" [result f gud-xdb-directories directories path nil file-exists-p expand-file-name "/"] 4 (#$ . 28254)])
(defalias 'gud-xdb-marker-filter #[(string) "\306\307	\n\"\204 \307\310\n\"\203 \nP\311\202 \nP\203K \307\312\"\204/ \307\313\"\203K \314\315\224\315\225O!\316\317\224\317\225O!\f\203J \fB*\206P \311)\207" [result comint-prompt-regexp string gud-marker-acc file line nil string-match ".*\n" "" "\\([^\n 	:]+\\): [^:]+: \\([0-9]+\\)[: ]" "[^: 	]+:[ 	]+\\([^:]+\\): [^:]+: \\([0-9]+\\):" string-to-int 2 gud-xdb-file-name 1 gud-last-frame] 5])
(defalias 'gud-xdb-find-file #[(f) "\212\302!\211\205\f \303	!*\207" [f realf gud-xdb-file-name find-file-noselect] 3])
#@311 Run xdb on program FILE in buffer *gud-FILE*.
The directory containing FILE becomes the initial working directory
and source-file directory for your debugger.

You can set the variable 'gud-xdb-directories' to a list of program source
directories if your program contains sources from more than one directory.
(defalias 'xdb #[(command-line) "\304\305\306\307$\210\310\311!\312L\210\313\314M\210\315\316 \317\313#\210\320	\321P\313\"\210\322\323M\210\315\316 \324\322#\210\320	\325P\322\"\210\326\327M\210\315\316 \330\326#\210\320	\331P\326\"\210\332\333M\210\315\316 \334\332#\210\320	\335P\332\"\210\336\337M\210\315\316 \340\336#\210\320	\341P\336\"\210\342\343M\210\315\316 \344\342#\210\320	\345P\342\"\210\346\347M\210\315\316 \350\346#\210\320	\351P\346\"\210\352\353M\210\315\316 \354\352#\210\320	\355P\352\"\210\356\357M\210\315\316 \360\356#\210\320	\361P\356\"\210\362\363M\210\315\316 \364\362#\210\320	\365P\362\"\210\366\366\367\370\371\"\210\367\372\373\"\210\367\374\375\"\210\367\376\377\"\210\201@ \201A !\207" [command-line gud-key-prefix comint-prompt-regexp paragraph-start gud-common-init gud-xdb-massage-args gud-xdb-marker-filter gud-xdb-find-file make-local-variable gud-minor-mode xdb gud-break #[(arg) "\301\302\"\207" [arg gud-call "b %f:%l"] 3 "Set breakpoint at current line." "p"] define-key current-local-map "" global-set-key "" gud-tbreak #[(arg) "\301\302\"\207" [arg gud-call "b %f:%l\\t"] 3 "Set temporary breakpoint at current line." "p"] "" "" gud-remove #[(arg) "\301\302\"\207" [arg gud-call "db"] 3 "Remove breakpoint at current line" "p"] "" "" gud-step #[(arg) "\301\302\"\207" [arg gud-call "s %p"] 3 "Step one line with display." "p"] "" "" gud-next #[(arg) "\301\302\"\207" [arg gud-call "S %p"] 3 "Step one line (skip functions)." "p"] "" "" gud-cont #[(arg) "\301\302\"\207" [arg gud-call "c"] 3 "Continue with display." "p"] "" "" gud-up #[(arg) "\301\302\"\207" [arg gud-call "up %p"] 3 "Up (numeric arg) stack frames." "p"] "<" "<" gud-down #[(arg) "\301\302\"\207" [arg gud-call "down %p"] 3 "Down (numeric arg) stack frames." "p"] ">" ">" gud-finish #[(arg) "\301\302\"\207" [arg gud-call "bu\\t"] 3 "Finish executing current function." "p"] "" "" gud-print #[(arg) "\301\302\"\207" [arg gud-call "p %e"] 3 "Evaluate C expression at point." "p"] "" "" "^>" local-set-key [menu-bar debug tbreak] ("Temporary Breakpoint" . gud-tbreak) [menu-bar debug finish] ("Finish Function" . gud-finish) [menu-bar debug up] ("Up Stack" . gud-up) [menu-bar debug down] ("Down Stack" . gud-down) run-hooks xdb-mode-hook] 5 (#$ . 29147) (list (gud-query-cmdline 'xdb))])
(byte-code "\301B\302\301!\204\f \303\303\207" [current-load-list gud-perldb-history boundp nil] 2)
(defalias 'gud-perldb-massage-args #[(file args) "\304C\305\306\2039 \307\310@\"\2039 @\311\232\2049 @\312\232\2049 @\313\232\2033 \n \2041 \314\315!\210\316\n \210\202 	\204P \203I \307\310@\"\203M \314\317!\210\n \210\203a @\312\232\203a \n \210\202i 	\203i \312B\320B\203w \n \210\202m \237+\207" [new-args seen-e shift args "-d" nil #[nil "@	BA\211\207" [args new-args] 2] string-match "^-" "-" "--" "-e" error "No code specified for -e" t "Can't use stdin as the script to debug" "-emacs"] 3])
(defalias 'gud-perldb-marker-filter #[(string) "	P\304\305\306\"\203. \307\224\307\225O\310\311\224\311\225O!B\n\312\211\224OP\312\225\313O\202 \305\314\"\203F \n\312\211\224OP\312\224\313O\202L \nP\304\n)\207" [gud-marker-acc string output gud-last-frame "" string-match "\\(\\([a-zA-Z]:\\)?[^:\n]*\\):\\([0-9]*\\):.*\n" 1 string-to-int 3 0 nil ".*\\'"] 5])
(defalias 'gud-perldb-find-file #[(f) "\301!\207" [f find-file-noselect] 2])
#@31 File name for executing Perl.
(custom-declare-variable 'gud-perldb-command-name '"perl" '(#$ . 32888) :type 'string :group 'gud)
#@163 Run perldb on program FILE in buffer *gud-FILE*.
The directory containing FILE becomes the initial working directory
and source-file directory for your debugger.
(defalias 'perldb #[(command-line) "\304\305\306\307$\210\310\311!\312L\210\313\314M\210\315\316 \317\313#\210\320	\321P\313\"\210\322\323M\210\315\316 \324\322#\210\320	\325P\322\"\210\326\327M\210\315\316 \330\326#\210\320	\331P\326\"\210\332\333M\210\315\316 \334\332#\210\320	\335P\332\"\210\336\337M\210\315\316 \340\336#\210\320	\341P\336\"\210\342\343M\210\315\316 \344\342#\210\320	\345P\342\"\210\346\346\347\350!\207" [command-line gud-key-prefix comint-prompt-regexp paragraph-start gud-common-init gud-perldb-massage-args gud-perldb-marker-filter gud-perldb-find-file make-local-variable gud-minor-mode perldb gud-break #[(arg) "\301\302\"\207" [arg gud-call "b %l"] 3 "Set breakpoint at current line." "p"] define-key current-local-map "" global-set-key "" gud-remove #[(arg) "\301\302\"\207" [arg gud-call "d %l"] 3 "Remove breakpoint at current line" "p"] "" "" gud-step #[(arg) "\301\302\"\207" [arg gud-call "s"] 3 "Step one source line with display." "p"] "" "" gud-next #[(arg) "\301\302\"\207" [arg gud-call "n"] 3 "Step one line (skip functions)." "p"] "" "" gud-cont #[(arg) "\301\302\"\207" [arg gud-call "c"] 3 "Continue with display." "p"] "" "" gud-print #[(arg) "\301\302\"\207" [arg gud-call "%e"] 3 "Evaluate perl expression at point." "p"] "" "" "^  DB<+[0-9]+>+ " run-hooks perldb-mode-hook] 5 (#$ . 33024) (list (gud-query-cmdline 'perldb (concat (or (buffer-file-name) "-e 0") " ")))])
(byte-code "\301B\302\301!\204\f \303\303\207" [current-load-list gud-pdb-history boundp nil] 2)
(defalias 'gud-pdb-massage-args #[(file args) "\207" [args] 1])
(byte-code "\301B\306\301!\204\f \307\302B\306\302!\204 \310\303B\306\303!\204$ \311\304B\306\304!\2040 \312\305B\306\305!\204< \313\301\207" [current-load-list gud-pdb-marker-regexp gud-pdb-marker-regexp-file-group gud-pdb-marker-regexp-line-group gud-pdb-marker-regexp-fnname-group gud-pdb-marker-regexp-start boundp "^> \\([-a-zA-Z0-9_/.]*\\|<string>\\)(\\([0-9]+\\))\\([a-zA-Z0-9_]*\\|\\?\\)()\\(->[^\n]*\\)?\n" 1 2 3 "^> "] 2)
(defalias 'gud-pdb-marker-filter #[(string) "	P\306\307\"\203? \310\f\"\311\310\"!\211\312\230\203& \202+ B*\n\313\211\225OP\313\225\314O\202 \307\"\203X \n\313\211\224OP\313\224\314O\202^ \nP\306\n)\207" [gud-marker-acc string output gud-pdb-marker-regexp gud-pdb-marker-regexp-file-group gud-pdb-marker-regexp-line-group "" string-match match-string string-to-int "<string>" 0 nil line file gud-last-frame gud-pdb-marker-regexp-start] 6])
(defalias 'gud-pdb-find-file #[(f) "\301!\207" [f find-file-noselect] 2])
#@115 File name for executing the Python debugger.
This should be an executable on your path, or an absolute file name.
(custom-declare-variable 'gud-pdb-command-name '"pdb" '(#$ . 35803) :type 'string :group 'gud)
#@162 Run pdb on program FILE in buffer `*gud-FILE*'.
The directory containing FILE becomes the initial working directory
and source-file directory for your debugger.
(defalias 'pdb #[(command-line) "\304\305\306\307$\210\310\311!\312L\210\313\314M\210\315\316 \317\313#\210\320	\321P\313\"\210\322\323M\210\315\316 \324\322#\210\320	\325P\322\"\210\326\327M\210\315\316 \330\326#\210\320	\331P\326\"\210\332\333M\210\315\316 \334\332#\210\320	\335P\332\"\210\336\337M\210\315\316 \340\336#\210\320	\341P\336\"\210\342\343M\210\315\316 \344\342#\210\320	\345P\342\"\210\346\347M\210\315\316 \350\346#\210\320	\351P\346\"\210\352\353M\210\315\316 \354\352#\210\320	\355P\352\"\210\356\357M\210\315\316 \360\356#\210\320	\361P\356\"\210\362\363M\210\315\316 \364\362#\210\320	\365P\362\"\210\366\367\370\"\210\366\371\372\"\210\366\373\374\"\210\375\375\376\377!\207" [command-line gud-key-prefix comint-prompt-regexp paragraph-start gud-common-init gud-pdb-massage-args gud-pdb-marker-filter gud-pdb-find-file make-local-variable gud-minor-mode pdb gud-break #[(arg) "\301\302\"\207" [arg gud-call "break %l"] 3 "Set breakpoint at current line." "p"] define-key current-local-map "" global-set-key "" gud-remove #[(arg) "\301\302\"\207" [arg gud-call "clear %l"] 3 "Remove breakpoint at current line" "p"] "" "" gud-step #[(arg) "\301\302\"\207" [arg gud-call "step"] 3 "Step one source line with display." "p"] "" "" gud-next #[(arg) "\301\302\"\207" [arg gud-call "next"] 3 "Step one line (skip functions)." "p"] "" "" gud-cont #[(arg) "\301\302\"\207" [arg gud-call "continue"] 3 "Continue with display." "p"] "" "" gud-finish #[(arg) "\301\302\"\207" [arg gud-call "return"] 3 "Finish executing current function." "p"] "" "" gud-up #[(arg) "\301\302\"\207" [arg gud-call "up"] 3 "Up one stack frame." "p"] "<" "<" gud-down #[(arg) "\301\302\"\207" [arg gud-call "down"] 3 "Down one stack frame." "p"] ">" ">" gud-print #[(arg) "\301\302\"\207" [arg gud-call "p %e"] 3 "Evaluate Python expression at point." "p"] "" "" gud-statement #[(arg) "\301\302\"\207" [arg gud-call "! %e"] 3 "Execute Python statement at point." "p"] "" "" local-set-key [menu-bar debug finish] ("Finish Function" . gud-finish) [menu-bar debug up] ("Up Stack" . gud-up) [menu-bar debug down] ("Down Stack" . gud-down) "^(Pdb) *" run-hooks pdb-mode-hook] 5 (#$ . 36019) (list (gud-query-cmdline 'pdb))])
(byte-code "\301B\302\301!\204\f \303\303\207" [current-load-list gud-jdb-history boundp nil] 2)
#@541 *A list of directories that gud jdb should search for source code.
The file names should be absolute, or relative to the current
directory.

The set of .java files residing in the directories listed are
syntactically analyzed to determine the classes they define and the
packages in which these classes belong.  In this way gud jdb maps the
package-qualified class names output by the jdb debugger to the source
file from which the class originated.  This allows gud mode to keep
the source code display in sync with the debugging session.
(defvar gud-jdb-directories (list ".") (#$ . -38537))
(byte-code "\301B\304\301!\204\f \305\302B\304\302!\204 \305\303B\304\303!\204$ \305\305\207" [current-load-list gud-jdb-source-files gud-jdb-class-source-alist gud-jdb-analysis-buffer boundp nil] 2)
(defalias 'gud-jdb-build-source-files-list #[(path extn) "\301\302\303\304\"\"\207" [path apply nconc mapcar #[(d) "\302!\205\f \303\304	\305$\207" [d extn file-directory-p directory-files t nil] 5]] 5])
(defalias 'gud-jdb-skip-whitespace #[nil "\300\301w\207" [" \n	\f" nil] 2])
(defalias 'gud-jdb-skip-single-line-comment #[nil "\300\207" [nil] 1])
(defalias 'gud-jdb-skip-traditional-or-documentation-comment #[nil "\300u\210\301\302\215\207" [2 break (byte-code "m?\205) g\300=\203# \301u\210m\204  g\302=\203  \301u\210\303\304\301\"\210\202  \301u\210\202  \207" [42 nil 47 throw break] 3)] 2])
(defalias 'gud-jdb-skip-whitespace-and-comments #[nil "\300 \210\301\302\215\207" [gud-jdb-skip-whitespace done (byte-code "\300\301!\203 \302 \210\303 \210\202  \300\304!\203 \305 \210\303 \210\202  \306\307\310\"\210\202  " [looking-at "//" gud-jdb-skip-single-line-comment gud-jdb-skip-whitespace "/\\*" gud-jdb-skip-traditional-or-documentation-comment throw done nil] 3)] 2])
(defalias 'gud-jdb-skip-id-ish-thing #[nil "\300\301w\207" ["^ /\n	\f,;{" nil] 2])
(defalias 'gud-jdb-skip-string-literal #[nil "\300u\210g\301=\203 \300u\202 g\302=\204 \300u\210\202 \300u\207" [nil 92 34] 2])
(defalias 'gud-jdb-skip-character-literal #[nil "\300u\210g\301=\203\f \302u\210g\303=\204 \300u\210\202 \300u\207" [nil 92 2 39] 2])
(defalias 'gud-jdb-skip-block #[nil "g\301=\204< \302\303!\203 \304 \210\202  \302\305!\203 \306 \210\202  g\307=\203* \310 \210\202  g\311=\2036 \312 \210\202  \313u\210\202  \313u\210\314\315=?\205\234 \302\303!\203T \304 \210\202A \302\305!\203` \306 \210\202A g\307=\203l \310 \210\202A g\311=\203x \312 \210\202A g\301=\203\207 T\313u\210\202A g\316=\203\226 S\313u\210\202A \313u\210\202A )\207" [open-level 123 looking-at "//" gud-jdb-skip-single-line-comment "/\\*" gud-jdb-skip-traditional-or-documentation-comment 34 gud-jdb-skip-string-literal 39 gud-jdb-skip-character-literal nil 1 0 125] 2])
(defalias 'gud-jdb-analyze-source #[(buf file) "\303	q\210\304\n\303\211\211\305%\210\306b\210\307\310\215\210)\207" [l buf file nil insert-file-contents t 0 abort (byte-code "\304\305 \210m\204\325 g\306=\203 \307u\210\202 \310\311!\203! \312 \210\202 \310\313!\203- \314 \210\202 \310\315!\203T \316u\210\317 \210`\320 \210	`{\321P\317 \210g\306=\203P \307u\210)\202 \310\322!\203r \323u\210\317 \210\320 \210\317 \210g\306=\203 \307u\210\202 \310\324!\203~ \323u\210\202 \310\325!\203\212 \326u\210\202 \310\327!\203\226 \330u\210\202 \310\331!\203\267 \330u\210\317 \210`\320 \210\n	`{PC\244)\332 \210\202 \310\333!\203\306 \334u\210\332 \210\202 \335\336\337\"!\210\340\341\307\"\210\202 )\307\207" [p s l file "" gud-jdb-skip-whitespace 59 nil looking-at "//" gud-jdb-skip-single-line-comment "/\\*" gud-jdb-skip-traditional-or-documentation-comment "package" 7 gud-jdb-skip-whitespace-and-comments gud-jdb-skip-id-ish-thing "." "import" 6 "public" "abstract" 8 "final" 5 "class" gud-jdb-skip-block "interface" 9 message format "Error parsing file %s." throw abort] 4)] 6])
(defalias 'gud-jdb-build-class-source-alist-for-file #[(file) "\302\303\304	\"\"\207" [gud-jdb-analysis-buffer file mapcar #[(c) "	B\207" [c file] 2] gud-jdb-analyze-source] 5])
(defalias 'gud-jdb-build-class-source-alist #[(sources) "\302\303!\304\305\306\307	\"\"\310!\210\311\207" [gud-jdb-analysis-buffer sources get-buffer-create " *gud-jdb-scratch*" apply nconc mapcar gud-jdb-build-class-source-alist-for-file kill-buffer nil] 5])
(defalias 'gud-jdb-massage-args #[(file args) "\205R \303\211\203, \304\305@\"\204, \304\306@\"\211\204, \307\n@C\"A\211\204\f 	\2038 \310p!\210\311\312!\210\203P \307\n\313C@\314\224\314\225OCA$\211\202Q \n*\207" [args user-error massaged-args nil string-match "-classpath\\(.+\\)" "-classpath$" append kill-buffer error "Error: Omit whitespace between '-classpath' and its value" "-classpath" 1] 7])
(defalias 'gud-jdb-find-source-file #[(p) "\302	\"A\207" [p gud-jdb-class-source-alist assoc] 3])
(defalias 'gud-jdb-marker-filter #[(string) "\203\n 	P\202 	\305\211\306\307#\203= \310\311\224\311\225O!\211\2033 \n\312\313\224\313\225O!B\2027 \314\315!\210\316\225\202 *	\207" [gud-marker-acc string file-found start gud-last-frame nil string-match "\\([a-zA-Z0-9.$_]+\\)\\.[a-zA-Z0-9$_<>]+ (\\([a-zA-Z0-9$_]+\\):\\([0-9]+\\))" gud-jdb-find-source-file 1 string-to-int 3 message "Could not find source file." 0] 5])
(defalias 'gud-jdb-find-file #[(f) "\301!\205	 \302!\207" [f file-readable-p find-file-noselect] 2])
#@42 Command that executes the Java debugger.
(defvar gud-jdb-command-name "jdb" (#$ . 43899))
#@245 Run jdb with command line COMMAND-LINE in a buffer.  The buffer is named
"*gud*" if no initial class is given or "*gud-<initial-class-basename>*"
if there is.  If the "-classpath" switch is given, omit all whitespace
between it and it's value.
(defalias 'jdb #[(command-line) "\306\307\310\311$\210\312\313!\314L\210\315\316M\210\317\320 \321\315#\210\322	\323P\315\"\210\324\325M\210\317\320 \326\324#\210\322	\327P\324\"\210\330\331M\210\317\320 \332\330#\210\322	\333P\330\"\210\334\335M\210\317\320 \336\334#\210\322	\337P\334\"\210\340\341M\210\317\320 \342\340#\210\322	\343P\340\"\210\344\344\345\346!\210\347\350\f\351\"\211!\211*\207" [command-line gud-key-prefix comint-prompt-regexp paragraph-start gud-jdb-directories gud-jdb-source-files gud-common-init gud-jdb-massage-args gud-jdb-marker-filter gud-jdb-find-file make-local-variable gud-minor-mode jdb gud-break #[(arg) "\301\302\"\207" [arg gud-call "stop at %F:%l"] 3 "Set breakpoint at current line." "p"] define-key current-local-map "" global-set-key "" gud-remove #[(arg) "\301\302\"\207" [arg gud-call "clear %l"] 3 "Remove breakpoint at current line" "p"] "" "" gud-step #[(arg) "\301\302\"\207" [arg gud-call "step"] 3 "Step one source line with display." "p"] "" "" gud-next #[(arg) "\301\302\"\207" [arg gud-call "next"] 3 "Step one line (skip functions)." "p"] "" "" gud-cont #[(arg) "\301\302\"\207" [arg gud-call "cont"] 3 "Continue with display." "p"] "" "" "^> \\|^.+\\[[0-9]+\\] " run-hooks jdb-mode-hook gud-jdb-build-class-source-alist gud-jdb-build-source-files-list "\\.java$" gud-jdb-class-source-alist] 5 (#$ . 43996) (list (gud-query-cmdline 'jdb))])
(byte-code "\301B\304\301!\204\f \305\306\307\310\311#\210\302B\304\302!\204 \312 \303B\304\303!\204. \313\314\305\"\315B\316\315\305\"\210\306\307\317\320#\207" [current-load-list gud-delete-prompt-marker gud-mode-map gud-mode-syntax-table boundp nil put gud-mode mode-class special make-sparse-keymap make-char-table syntax-table gud-mode-abbrev-table define-abbrev-table derived-mode-parent comint-mode] 4)
#@2344 Major mode for interacting with an inferior debugger process.

   You start it up with one of the commands M-x gdb, M-x sdb, M-x dbx,
M-x perldb, or M-x xdb.  Each entry point finishes by executing a
hook; `gdb-mode-hook', `sdb-mode-hook', `dbx-mode-hook',
`perldb-mode-hook', or `xdb-mode-hook' respectively.

After startup, the following commands are available in both the GUD
interaction buffer and any source buffer GUD visits due to a breakpoint stop
or step operation:

\[gud-break] sets a breakpoint at the current file and line.  In the
GUD buffer, the current file and line are those of the last breakpoint or
step.  In a source buffer, they are the buffer's file and current line.

\[gud-remove] removes breakpoints on the current file and line.

\[gud-refresh] displays in the source window the last line referred to
in the gud buffer.

\[gud-step], \[gud-next], and \[gud-stepi] do a step-one-line,
step-one-line (not entering function calls), and step-one-instruction
and then update the source window with the current file and position.
\[gud-cont] continues execution.

\[gud-print] tries to find the largest C lvalue or function-call expression
around point, and sends it to the debugger for value display.

The above commands are common to all supported debuggers except xdb which
does not support stepping instructions.

Under gdb, sdb and xdb, \[gud-tbreak] behaves exactly like \[gud-break],
except that the breakpoint is temporary; that is, it is removed when
execution stops on it.

Under gdb, dbx, and xdb, \[gud-up] pops up through an enclosing stack
frame.  \[gud-down] drops back down through one.

If you are using gdb or xdb, \[gud-finish] runs execution to the return from
the current function and stops.

All the keystrokes above are accessible in the GUD buffer
with the prefix C-c, and in all buffers through the prefix C-x C-a.

All pre-defined functions for which the concept make sense repeat
themselves the appropriate number of times if you give a prefix
argument.

You may use the `gud-def' macro in the initialization hook to define other
commands.

Other commands for interacting with the debugger process are inherited from
comint mode, which see.

In addition to any hooks its parent mode `comint-mode' might have run,
this mode runs the hook `gud-mode-hook', as the final step
during initialization.
(defalias 'gud-mode #[nil "\306 \210\306\307N\203 \310\311\307\312#\210\311\313\314\n!\204 \315\n\316 \"\210\317!\211\203. \f\320 =\2034 \321\322 \"\210)\203> \323\324\"\210\325\n!\210\326!\210%\327&\330\316 \331\332#\210\333\334!\335L\210\333\336!\210\333\337!\312L\210\333\340!\210\333\341!\342 L\210\343\344!\207" [major-mode mode-name gud-mode-map gud-mode-syntax-table parent local-abbrev-table comint-mode special put gud-mode t "Debugger" keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table mapatoms #[(symbol) "\302\303!	\"\206 \304	\303!JK$\207" [symbol gud-mode-abbrev-table intern-soft symbol-name define-abbrev] 5] use-local-map set-syntax-table (":%s") define-key "\f" gud-refresh make-local-variable gud-last-frame nil comint-prompt-regexp comint-input-ignoredups paragraph-start gud-delete-prompt-marker make-marker run-hooks gud-mode-hook gud-mode-abbrev-table mode-line-process] 5 (#$ . 46091) nil])
#@56 Non-nil if GUD should `cd' to the debugged executable.
(custom-declare-variable 'gud-chdir-before-run 't '(#$ . 49449) :group 'gud :type 'boolean)
(defalias 'gud-common-init #[(command-line massage-args marker-filter &optional find-file) "\306!\211@	A\211\203 @\307H\310U\203 A\211\204 \205( @\311\240\210)\211\2051 \312\f!	A#\f\205G \313!\203F \314!\202G $\f\205S \315\316$!P%\317\320%\321Q!\210\f\203s &\203s \313$!\203s \313$!'n\204z \322 \210\323'\324\261\210#\211\203\226 @\311=\204\226 A\211\204\210 \203\237 $\240\210)\325\326\327%P\n\330($#\"%\210.\331 \210\332\333!\210)*\203\312 \332\334!*L\210\335\336p!\337\"\210\340\336p!\341\"\210\342 \207" [command-line words program w file-word file-subst split-string 0 45 t substitute-in-file-name file-name-directory expand-file-name "-" file-name-nondirectory pop-to-buffer "*gud" "*" newline "Current directory is " "\n" apply make-comint "gud" nil gud-mode make-local-variable gud-marker-filter gud-find-file set-process-filter get-buffer-process gud-filter set-process-sentinel gud-sentinel gud-set-buffer args file filepart gud-chdir-before-run default-directory massage-args marker-filter find-file] 9])
(defalias 'gud-set-buffer #[nil "\302=\205	 p\211\207" [major-mode gud-comint-buffer gud-mode] 2])
#@110 Non-nil means don't process anything from the debugger right now.
It is saved for when this flag is not set.
(defvar gud-filter-defer-flag nil (#$ . 50767))
#@75 Non-nil means this is text that has been saved for later in `gud-filter'.
(defvar gud-filter-pending-text nil (#$ . 50930))
(defalias 'gud-filter #[(proc string) "\306\211\307\310\n!!\205\215 \203 \f\206 \311P\211\202\215 \312\f\203( \fP\306r\310\n!q\210\214~\210\313!\203E \314\n!|\210\306\211\223\210\315!\205Y `\314\n!Y\205Y \316p!)\317\n	\"\210)\203v \320 \321\216\322!\210\323 \210*\202\204 p\310\n!q\210\324\216\323 \210*)\f\205\215 \325\n\311\"*\207" [process-window output proc gud-filter-defer-flag gud-filter-pending-text string nil buffer-name process-buffer "" t marker-buffer process-mark gud-marker-filter get-buffer-window comint-output-filter selected-window ((byte-code "\301!\203\n \302!\210\301\207" [save-selected-window-window window-live-p select-window] 2)) select-window gud-display-frame ((set-buffer old-buf)) gud-filter gud-delete-prompt-marker gud-last-frame save-selected-window-window old-buf] 3])
(defalias 'gud-sentinel #[(proc msg) "\306\307!!\204 \310\311\310\"\207\312!\313>\205K \310p\314\216\307!q\210\315\316\312!!P\317 \210m\203; \320\f\321\261\210\202G \212db\210\320\f\321\261\210)\322!*\207" [proc overlay-arrow-position obuf mode-line-process mode-name msg buffer-name process-buffer nil set-process-buffer process-status (signal exit) ((set-buffer obuf)) ":" symbol-name force-mode-line-update 10 " " delete-process] 4])
#@143 Find and obey the last filename-and-line marker from the debugger.
Obeying it means displaying in another window the specified file and line.
(defalias 'gud-display-frame #[nil "\205 \302 \210\303@A\"\210\304\211\207" [gud-last-frame gud-last-last-frame gud-set-buffer gud-display-line nil] 3 (#$ . 52347) nil])
(defalias 'gud-display-line #[(true-file line) "\306\212p	=\204\f 	q\210\307\n!)\211\205 \310!\206 \311!\312\205] \212q\210\214~\210\313!\210`\314\204? \315 `p\223\210)eW\204R dV\203W ~\210b\210)\316\f\",\207" [last-nonmenu-event gud-comint-buffer true-file buffer window pos t gud-find-file get-buffer-window display-buffer nil goto-line "=>" make-marker set-window-point line overlay-arrow-string overlay-arrow-position] 4])
(defalias 'gud-format-command #[(str arg) "p=?	\206	 \n\306\203\334 \307\310\"\203\334 \311\312\224\306O!\306\211\313=\203? \314\2037 \315 \2029 \f@!\202\305 \316=\203Z \317\314\203Q \315 \202S \f@!!\202\305 \320=\203s \321\203k \315 \202m \f@!\202\305 \322=\203\227 \203\220 \212\323 \210\214~\210\324\325\326`\"T!*\202\222 \fA\202\305 \327=\203\245 \330 \202\305 \331=\203\263 \332 \202\305 \333=\203\305  \205\303 \324 !\334\326\"Q*\312\225\306O\211\204 P+\207" [gud-comint-buffer gud-last-frame gud-last-last-frame result frame insource nil string-match "\\([^%]*\\)%\\([adeflp]\\)" string-to-char 2 102 file-name-nondirectory buffer-file-name 70 file-name-sans-extension 100 file-name-directory 108 beginning-of-line int-to-string count-lines 1 101 gud-find-c-expr 97 gud-read-address 112 match-string str subst key arg] 5])
#@75 Return a string containing the core-address found in the buffer at point.
(defalias 'gud-read-address #[nil "\212`\303\211\304\305\n\306Z\307#\205 `\211\203' \310u\210	\311\312!\210\313u\210`{\202= \314\315!\210\316u\210`\316u\210\311\315!\210\313u\210`{,\207" [begin found pt nil search-backward "0x" 7 t 2 re-search-forward "[^0-9a-f]" -1 re-search-backward "[^0-9]" 1] 5 (#$ . 54015)])
(defalias 'gud-call #[(fmt &optional arg) "\303	\"\304\305\n\"\210\306\307!\210\310\n!)\207" [fmt arg msg gud-format-command message "Command: %s" sit-for 0 gud-basic-call] 3])
#@64 Invoke the debugger COMMAND displaying source in other window.
(defalias 'gud-basic-call #[(command) "\305 \210\306P\307	!\n\204 \310\311!\210\212	q\210\214~\210\312\n!b\210\313y\210\314!\203- \f`\315\223\210*\316\n\"*\207" [command gud-comint-buffer proc comint-prompt-regexp gud-delete-prompt-marker gud-set-buffer "\n" get-buffer-process error "Current buffer has no process" process-mark 0 looking-at nil process-send-string] 3 (#$ . 54596) nil])
#@58 Fix up a possibly garbled display, and redraw the arrow.
(defalias 'gud-refresh #[(&optional arg) "\204 	\303 \210\304\n!\207" [gud-last-frame gud-last-last-frame arg gud-display-frame recenter] 2 (#$ . 55059) "P"])
#@42 Returns the C expr that surrounds point.
(defalias 'gud-find-c-expr #[nil "\212\304\211\211`\305 \306 \203; \307	\"\203; 	@	AB\211@b\210\306 \211@A{\310\235\2037 \304)\202 \nb\210\311 \307	\"\203T 	@AB\311 \202A 	@	A{,\207" [test-expr expr p prev-expr nil gud-innermost-expr gud-prev-expr gud-expr-compound ("if" "while" "for") gud-next-expr] 4 (#$ . 55284) nil])
#@272 Returns the smallest expr that point is in; move point to beginning of it.
The expr is represented as a cons cell, where the car specifies the point in
the current buffer that marks the beginning of the expr and the cdr specifies
the character after the end of the expr.
(defalias 'gud-innermost-expr #[nil "`\303\211\304 \210`\305 \210`\nY\203  \n\nb\210\305 \210`	b\210	+B\207" [end begin p nil gud-backward-sexp gud-forward-sexp] 3 (#$ . 55677)])
#@49 Version of `backward-sexp' that catches errors.
(defalias 'gud-backward-sexp #[nil "\300\301\302\217\207" [nil (backward-sexp) ((error t))] 3 (#$ . 56142)])
#@48 Version of `forward-sexp' that catches errors.
(defalias 'gud-forward-sexp #[nil "\300\301\302\217\207" [nil (forward-sexp) ((error t))] 3 (#$ . 56305)])
#@263 Returns the previous expr, point is set to beginning of that expr.
The expr is represented as a cons cell, where the car specifies the point in
the current buffer that marks the beginning of the expr and the cdr specifies
the character after the end of the expr
(defalias 'gud-prev-expr #[nil "\302\211\303 \210`\304 \210`	b\210	*B\207" [end begin nil gud-backward-sexp gud-forward-sexp] 2 (#$ . 56466)])
#@265 Returns the following expr, point is set to beginning of that expr.
The expr is represented as a cons cell, where the car specifies the point in
the current buffer that marks the beginning of the expr and the cdr specifies
the character after the end of the expr.
(defalias 'gud-next-expr #[nil "\302\211\303 \210\303 \210`\304 \210`\211*B\207" [end begin nil gud-forward-sexp gud-backward-sexp] 3 (#$ . 56883)])
#@213 Scan from SPAN-START to SPAN-END for punctuation characters.
If `->' is found, return `?.'.  If `.' is found, return `?.'.
If any other punctuation is found, return `??'.
If no punctuation is found, return `? '.
(defalias 'gud-expr-compound-sep #[(span-start span-end) "\304\305\nW\203I \nfz\211\304U\204B \306U\203B \nf\211\306U\203( \306\202B \307U\203> \nTf\310U\203> \306\nT\202B \311\nT\211\202 	*\207" [syntax result span-start span-end 32 nil 46 45 62 63] 3 (#$ . 57308)])
#@408 Non-nil if concatenating FIRST and SECOND makes a single C expression.
The two exprs are represented as a cons cells, where the car
specifies the point in the current buffer that marks the beginning of the
expr and the cdr specifies the character after the end of the expr.
Link exprs of the form:
      Expr -> Expr
      Expr . Expr
      Expr (Expr)
      Expr [Expr]
      (Expr) Expr
      [Expr] Expr
(defalias 'gud-expr-compound #[(first second) "A	@\305\306\f\"@	@U\203 \305\202i A	AU\203% \305\202i \n\307U\203/ \310\202i \n\311U\203h \fSff\f\312U\203F \310\202i \f\313U\203P \310\202i \314U\203Z \310\202i \315U\203d \310\202i \305\202i \305+\207" [first second syntax span-end span-start nil gud-expr-compound-sep 46 t 32 41 93 40 91] 3 (#$ . 57810)])
(provide 'gud)
