;ELC ;;; compiled by kwzh@hal.gnu.ai.mit.edu on Fri Aug 26 23:30:50 1994 ;;; from file /gd/gnu/emacs/19.0/lisp/edebug.el ;;; emacs version 19.25.94.8. ;;; bytecomp version FSF 2.10 ;;; optimization is on. ;;; this file uses opcodes which do not exist in Emacs 18. (if (and (boundp 'emacs-version) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19"))) (error "`/gd/gnu/emacs/19.0/lisp/edebug.el' was compiled for Emacs 19")) (byte-code " \"ĕO)!!M\f‡" ["$Revision: 3.5.1.10 $" raw-version string-match "[0-9.]*" 0 edebug-version require backquote fboundp defalias fset "liberte@cs.uiuc.edu" edebug-maintainer-address] 4) (defalias 'edebug-submit-bug-report #[nil "!!! Pկ#" [require reporter y-or-n-p "Do you really want to submit a report on edebug? " reporter-submit-bug-report edebug-maintainer-address "edebug.el " edebug-version edebug-setup-hook edebug-all-defs edebug-all-forms edebug-eval-macro-args edebug-stop-before-symbols edebug-save-windows edebug-save-displayed-buffer-points edebug-initial-mode edebug-trace edebug-test-coverage edebug-continue-kbd-macro edebug-print-length edebug-print-level edebug-print-circle] 17 "\ Submit, via mail, a bug report on edebug." nil]) (defvar edebug-setup-hook nil "\ *Functions to call before edebug is used. Each time it is set to a new value, Edebug will call those functions once and then `edebug-setup-hook' is reset to nil. You could use this to load up Edebug specifications associated with a package you are using but only when you also use Edebug.") (defvar edebug-all-defs nil "\ *If non-nil, evaluation of any defining forms will instrument for Edebug. This applies to `eval-defun', `eval-region', `eval-buffer', and `eval-current-buffer'. `eval-region' is also called by `eval-last-sexp', and `eval-print-last-sexp'. You can use the command `edebug-all-defs' to toggle the value of this variable. You may wish to make it local to each buffer with (make-local-variable 'edebug-all-defs) in your `emacs-lisp-mode-hook'.") (defvar edebug-all-forms nil "\ *Non-nil evaluation of all forms will instrument for Edebug. This doesn't apply to loading or evaluations in the minibuffer. Use the command edebug-all-forms to toggle the value of this option.") (defvar edebug-eval-macro-args nil "\ *Non-nil means all macro call arguments may be evaluated. If this variable is nil, the default, edebug will *not* wrap macro call arguments as if they will be evaluated. For each macro, a edebug-form-spec overrides this option. So to specify exceptions for macros that have some arguments evaluated and some not, you should specify an edebug-form-spec. This option is going away soon.") (defvar edebug-stop-before-symbols nil "\ *Non-nil causes Edebug to stop before symbols as well as after. In any case, a breakpoint or interrupt may stop before a symbol. This option is going away soon.") (defvar edebug-save-windows t "\ *If non-nil, Edebug saves and restores the window configuration. That takes some time, so if your program does not care what happens to the window configurations, it is better to set this variable to nil. If the value is a list, only the listed windows are saved and restored. `edebug-toggle-save-windows' may be used to change this variable.") (defvar edebug-save-displayed-buffer-points nil "\ *If non-nil, save and restore point in all displayed buffers. Saving and restoring point in other buffers is necessary if you are debugging code that changes the point of a buffer which is displayed in a non-selected window. If Edebug or the user then selects the window, the buffer's point will be changed to the window's point. Saving and restoring point in all buffers is expensive, since it requires selecting each window twice, so enable this only if you need it.") (defvar edebug-initial-mode (quote step) "\ *Initial execution mode for Edebug, if non-nil. If this variable is non-@code{nil}, it specifies the initial execution mode for Edebug when it is first activated. Possible values are step, next, go, Go-nonstop, trace, Trace-fast, continue, and Continue-fast.") (defvar edebug-trace nil "\ *Non-nil means display a trace of function entry and exit. Tracing output is displayed in a buffer named `*edebug-trace*', one function entry or exit per line, indented by the recursion level. You can customize by replacing functions `edebug-print-trace-before' and `edebug-print-trace-after'.") (defvar edebug-test-coverage nil "\ *If non-nil, Edebug tests coverage of all expressions debugged. This is done by comparing the result of each expression with the previous result. Coverage is considered OK if two different results are found. Use `edebug-display-freq-count' to display the frequency count and coverage information for a definition.") (defvar edebug-continue-kbd-macro nil "\ *If non-nil, continue defining or executing any keyboard macro. Use this with caution since it is not debugged.") (defvar edebug-print-length 50 "\ *Default value of print-length to use while printing results in edebug.") (defvar edebug-print-level 50 "\ *Default value of print-level to use while printing results in edebug.") (defvar edebug-print-circle t "\ *Default value of print-circle to use while printing results in edebug.") (defvar edebug-unwrap-results nil "\ *Non-nil if Edebug should unwrap results of expressions. This is useful when debugging macros where the results of expressions are instrumented expressions. But don't do this when results might be circular or an infinite loop will result.") (defvar edebug-on-error t "\ *Value bound to `debug-on-error' while Edebug is active. If `debug-on-error' is non-nil, that value is still used. If the value is a list of signal names, Edebug will stop when any of these errors are signaled from Lisp code whether or not the signal is handled by a `condition-case'. This option is useful for debugging signals that *are* handled since they would otherwise be missed. After execution is resumed, the error is signaled again.") (defvar edebug-on-quit t "\ *Value bound to `debug-on-quit' while Edebug is active.") (defvar edebug-global-break-condition nil "\ *If non-nil, an expression to test for at every stop point. If the result is non-nil, then break. Errors are ignored.") (defalias 'def-edebug-spec '(macro . #[(symbol spec) "\nD\fDF" [put quote symbol (quote edebug-form-spec) spec] 5 "\ Set the edebug-form-spec property of SYMBOL according to SPEC. Both SYMBOL and SPEC are unevaluated. The SPEC can be 0, t, a symbol (naming a function), or a list."])) (defalias 'def-edebug-form-spec '(macro . #[(symbol spec-form) "!#" [message "Obsolete: use def-edebug-spec instead." put symbol edebug-form-spec (eval spec-form)] 4 "\ For compatibility with old version. Use def-edebug-spec instead."])) (byte-code "\"!!#M" [defalias get-edebug-spec #[(symbol) "N9 N  *" [symbol edebug-form-spec nil indirect] 3] fboundp gensym boundp *gensym-index* 0 put variable-documentation "Integer used by gensym to produce new names." #[(&optional prefix) " 'P\\\f!\n\f! *" [prefix "G" nil "" newname newsymbol *gensym-index* 1 intern-soft make-symbol] 3 "Generate a fresh uninterned symbol.\nThere is an optional argument, PREFIX. PREFIX is the\nstring that begins the new name. Most people take just the default,\nexcept when debugging needs suggest otherwise."]] 4) (defalias 'lambda-list-keywordp #[(object) "9\f!HU" [object symbol-name 0 38] 2 "\ Return t if OBJECT is a lambda list keyword. A lambda list keyword is a symbol that starts with "]) (defalias (quote edebug-last-sexp) #[nil "!`)`{!@" [read-from-string forward-sexp -1] 3]) (defalias 'edebug-window-list #[nil " C ! =\f\nB\f! \n+" [selected-window first-window window-list next-window next] 3 "\ Return a list of windows, in order of next-window."]) (defalias 'edebug-window-live-p #[(window) "  \" =\f =\f\" \f *=" [selected-window first-window next-window t next window] 4 "\ Return non-nil if WINDOW is visible."]) (byte-code "\"#" [defalias edebug-lookup-function #[(object) "9!K" [object fboundp] 3] put byte-optimizer byte-compile-inline-expand] 4) (defalias 'edebug-macrop #[(object) "9!K)<+@=+A!+" [object fboundp macro edebug-functionp] 4 "\ Return the macro named by OBJECT, or nil if it is not a macro."]) (defalias 'edebug-functionp #[(object) "9!K)!0<1@=1A@<1" [object fboundp subrp lambda] 4 "\ Returns the function named by OBJECT, or nil if it is not a function."]) (defalias (quote edebug-sort-alist) #[(alist function) " \"" [sort alist #[(e1 e2) " @\n@\"" [function e1 e2] 3]] 3]) (defconst edebug-trace-buffer "*edebug-trace*" "\ Name of the buffer to put trace info in.") (byte-code "\"\"\"\"\"\"\"\"\"!9K\"" [defalias edebug-pop-to-buffer #[(buffer &optional window) " ! ! !\f= ) !\f=& )\f!5 !L =  ! =L ! \f\" \"" [windowp window edebug-window-live-p window-buffer buffer selected-window edebug-get-buffer-window select-window one-window-p split-window get-buffer-window edebug-trace-buffer next-window set-window-buffer set-window-hscroll 0] 4] edebug-get-displayed-buffer-points #[nil "  ! =* !q`B B ! -" [selected-window first-window next-window next nil buffer-point-list buffer window-buffer] 3] edebug-set-buffer-points #[(buffer-points) "p \"q)" [current-buffer mapcar #[(buf-point) " @! @q Ab" [buffer-name buf-point] 2] buffer-points] 3] edebug-current-windows #[(which-windows) "<\n\" " [which-windows mapcar #[(window) " ! ! ! ! !" [edebug-window-live-p window window-buffer window-point window-start window-hscroll] 6] current-window-configuration] 3] edebug-set-windows #[(window-info) "<\n\"!" [window-info mapcar #[(one-window-info) "\"" [one-window-info apply #[(window buffer point start hscroll) " ! \" \" \"  \"" [edebug-window-live-p window set-window-buffer buffer set-window-point point set-window-start start set-window-hscroll hscroll] 3]] 3] set-window-configuration] 3] edebug-get-buffer-window get-buffer-window edebug-sit-for sit-for edebug-input-pending-p input-pending-p require eval-reg "eval-reg" fboundp edebug-original-read read] 3) (defalias 'edebug-read #[(&optional stream) " p= !" [stream standard-input edebug-read-and-maybe-wrap-form edebug-original-read] 2 "\ Read one Lisp expression as text from STREAM, return as Lisp object. If STREAM is nil, use the value of `standard-input' (which see). STREAM or the value of `standard-input' may be: a buffer (read from point and advance it) a marker (read from where it points and advance it) a function (call it with no arguments for each character, call it with a char as argument to push a char back) a string (takes text from string, starting at the beginning) t (read text line using minibuffer and use it). This version, from Edebug, maybe instruments the expression. But the STREAM must be the current buffer to do so. Whether it instuments is also dependent on the values of `edebug-all-defs' and `edebug-all-forms'."]) (byte-code "!\fK\"" [fboundp edebug-original-eval-defun defalias eval-defun] 3) (defalias 'edebug-eval-defun #[(edebug-it) "? ?=?\f ?= *!\f! !\" *" [edebug-it edebug-all-defs nil edebug-result edebugging eval edebug-all-forms edebug-read-top-level-form princ] 4 "\ Evaluate the top-level form containing point, or after point. This version, from Edebug, has the following differences: With a prefix argument instrument the code for Edebug. If `edebug-all-defs' is non-nil, then the code is instrumented *unless* there is a prefix argument. If instrumenting, it prints: \"Edebug: \". Otherwise, it prints in the minibuffer." "P"]) (defalias (quote edebug-defun) (quote edebug-eval-top-level-form)) (defalias 'edebug-eval-top-level-form #[nil " *!" [eval t edebug-all-defs edebug-all-forms edebug-read-top-level-form] 3 "\ Evaluate a top level form, such as a defun or defmacro. This is like `eval-defun', but the code is always instrumented for Edebug. Print its name in the minibuffer and leave point where it is, or if an error occurs, leave point after it with mark at the original point." nil]) (byte-code "\"\"" [defalias edebug-read-top-level-form #[nil "` b)" [starting-point end-of-defun beginning-of-defun edebug-read-and-maybe-wrap-form] 2] edebug-all-defuns edebug-all-defs] 3) (defalias 'edebug-all-defs #[nil "? Â\"" [edebug-all-defs message "Edebugging all definitions is %s." "on" "off"] 3 "\ Toggle edebugging of all definitions." nil]) (defalias 'edebug-all-forms #[nil "? Â\"" [edebug-all-forms message "Edebugging all forms is %s." "on" "off"] 3 "\ Toggle edebugging of all forms." nil]) (byte-code "\"\"!\"\"#\"#\"#\"#\"\"\"\"\"\"#$#W{$#I#T#f$I$I$I$I$I$I$I$I$I$*9\"\"\"@ABCDE\"́D#FG\"HI\"JK\"́LMN#́LOP#LQ\"RSTU\"VW\"XY\"Z[\"\\]\"^_\"`a\"bc!ocde\"fg\"́f#hi\"́h#jk\"́j#lm\"́l#no\"́n#pq\"rs\"́r#tu\"vw\"xy\"bz!z{|}~\"\"\"" [defalias edebug-install-read-eval-functions #[nil "K=? \"\"" [read edebug-read elisp-eval-region-install defalias eval-defun edebug-eval-defun] 3 nil nil] edebug-uninstall-read-eval-functions #[nil " K\"K\"" [elisp-eval-region-uninstall defalias read edebug-original-read eval-defun edebug-original-eval-defun] 3 nil nil] make-variable-buffer-local edebug-form-data nil edebug-make-form-data-entry #[(symbol begin end) " \nE" [symbol begin end] 3] edebug-form-data-name #[(entry) "@" [entry] 1] put byte-optimizer byte-compile-inline-expand edebug-form-data-begin #[(entry) "A@" [entry] 1] edebug-form-data-end #[(entry) " 8" [2 entry] 2] edebug-set-form-data-entry #[(entry name begin end) " A@\nÓ8 Ó" [entry name begin nil 2 end] 3] edebug-get-form-data-entry #[(pnt &optional end-point) " b Wb @A@) Z\n A\nX^\n W^ I 8)U^ 8)X^\n+\f+" [edebug-form-data nil 999999 closest-dist closest-entry rest 0 entry begin pnt dist end-point 2] 4] edebug-form-data-symbol #[nil "`!@) !" [edebug-get-form-data-entry entry error "Not inside instrumented form"] 3] edebug-make-top-form-data-entry #[(new-entry) " ! \nB" [edebug-clear-form-data-entry new-entry edebug-form-data] 2] edebug-clear-form-data-entry #[(entry) "\n\n\"" [entry delq edebug-form-data] 3] edebug-syntax-error #[(&rest args) "\n\"" [signal invalid-read-syntax args] 3] make-vector 256 symbol 0 i table 33 space 40 lparen 41 rparen 39 quote 34 string 63 char 91 lbracket 93 rbracket 46 dot 35 hash edebug-read-syntax-table edebug-next-token-class #[nil " gH" [edebug-skip-whitespace edebug-read-syntax-table] 2] edebug-skip-whitespace #[nil "wgUww" [" \n\f" nil 59 "^\n "] 2] edebug-read-sexp #[nil " =p!\fhH=BuB =/p!hUBuB =?u DBp!)" [edebug-next-token-class class symbol edebug-original-read edebug-read-syntax-table -1 string 34 quote 1 edebug-read-sexp] 4] edebug-offsets edebug-offsets-stack edebug-current-offset edebug-read-dotted-list edebug-initialize-offsets #[nil "" [nil edebug-current-offset] 2] edebug-store-before-offset #[(point) "C\n\n \nAB  B )" [point new-offset edebug-current-offset edebug-offsets nil edebug-offsets-stack edebug-read-dotted-list] 3] edebug-store-after-offset #[(point) " A AA A@A \fA@" [edebug-read-dotted-list edebug-current-offset nil point edebug-offsets-stack] 4] edebug-ignore-offset #[nil "AA" [edebug-current-offset] 2] edebug-storing-offsets edebug-form-spec (form body) lisp-indent-hook 1 (macro . #[(point &rest body) " D\fBBBB" [unwind-protect progn edebug-store-before-offset point body ((edebug-store-after-offset (point)))] 4]) ((symbol . edebug-read-symbol) (lparen . edebug-read-list) (string . edebug-read-string) (quote . edebug-read-quote) (lbracket . edebug-read-vector) (hash . edebug-read-function)) edebug-read-alist edebug-read-storing-offsets #[(stream) " Ŏ`!\f A!\"!," [edebug-next-token-class nil edebug-read-dotted-list func class ((byte-code "`!" [edebug-store-after-offset] 2)) edebug-store-before-offset edebug-read-alist stream edebug-original-read] 3] edebug-read-symbol #[(stream) " !\nhH=u" [edebug-original-read stream edebug-read-syntax-table symbol -1] 3] edebug-read-string #[(stream) " !hU\fu" [edebug-original-read stream 34 -1] 3] edebug-read-quote #[(stream) "u`!) !D" [1 ((byte-code "`!" [edebug-store-after-offset] 2)) edebug-store-before-offset quote edebug-read-storing-offsets stream] 3] edebug-read-function #[(stream) "ugU !uĎ`!! Ȃ!) !D" [1 39 edebug-syntax-error "Bad char" ((byte-code "`!" [edebug-store-after-offset] 2)) edebug-store-before-offset featurep cl function* function edebug-read-storing-offsets stream] 3] edebug-read-list #[(stream) "u >!\nB\n =Bu!\n =<!<\f)\n)u" [1 nil elements edebug-next-token-class (rparen dot) edebug-read-storing-offsets stream dot dotted-form rparen edebug-syntax-error "Expected `)'" edebug-read-dotted-list] 2] edebug-read-vector #[(stream) "u =!\nB\n\")u" [1 nil elements edebug-next-token-class rbracket edebug-read-storing-offsets stream apply vector] 3] boundp edebug-dotted-spec edebug-new-cursor #[(expressions offsets) " ! \" \fB" [vectorp expressions append nil offsets] 3] edebug-set-cursor #[(cursor expressions offsets) " \n" [cursor expressions offsets] 2] edebug-cursor-expressions #[(cursor) "@" [cursor] 1] edebug-cursor-offsets #[(cursor) "A" [cursor] 1] edebug-empty-cursor #[(cursor) "@?" [cursor] 1] edebug-top-element #[(cursor) "@@" [cursor] 1] edebug-top-element-required #[(cursor &rest error) " \n\"\n@)\n #\n@@)" [edebug-dotted-spec edebug-no-match cursor "Dot expected." apply error] 5] edebug-top-offset #[(cursor) "A@" [cursor] 1] edebug-move-cursor #[(cursor) "@) \"@AAA" [cursor edebug-no-match "Not enough arguments."] 4] edebug-before-offset #[(cursor) "A): @@ S)" [cursor offset] 2] edebug-after-offset #[(cursor) "A@): A )" [cursor offset] 2] edebug-gate edebug-def-name edebug-old-def-name edebug-error-point edebug-best-error edebug-read-and-maybe-wrap-form #[nil "!‰ \\ \\ \n \f Ѝ8\". " [run-hooks edebug-setup-hook nil max-lisp-eval-depth 800 max-specpdl-size 2000 no-match edebug-error-point edebug-best-error edebug-gate edebug-&rest edebug-&optional edebug-def-name edebug-top-window-data result (byte-code " ‡" [edebug-read-and-maybe-wrap-form1 result nil] 1) apply edebug-syntax-error] 13] edebug-read-and-maybe-wrap-form1 #[nil " =Uu =Up!90!<<@=TA@=T =Tp!) dp!C C\"!!S!ABC$@)\f # p!C C\"!!$) ." [nil edebug-current-offset edebug-offsets-stack edebug-offsets def-name defining-form-p def-kind spec edebug-next-token-class lparen 1 symbol edebug-original-read get-edebug-spec &define name edebug-all-defs edebug-all-forms edebug-new-cursor edebug-read-storing-offsets cursor edebug-make-form-wrapper edebug-before-offset edebug-after-offset symbol-name put edebug point-marker edebug-read-sexp] 8] edebug-interactive-p-name #[nil " \"!" [intern format "edebug-%s-interactive-p" edebug-def-name] 4]] 5) (defalias 'edebug-wrap-def-body #[(forms) " BC !E !" [edebug-def-interactive let edebug-interactive-p-name ((interactive-p)) edebug-make-enter-wrapper forms] 4 "\ Wrap the FORMS of a definition body."]) (byte-code "\"\"\"\"" [defalias edebug-make-enter-wrapper #[(forms) " !DB\fBBDF" [edebug-def-name edebug-old-def-name gensym "edebug-anon" edebug-enter quote edebug-inside-func list edebug-def-args function lambda nil forms] 7] edebug-inc-offset #[(offset) " \nZ BT" [edebug-offset-index offset edebug-form-begin-marker edebug-offset-list] 3] edebug-make-before-and-after-form #[(before-index form after-index) "\nD \fF" [edebug-after edebug-before before-index after-index form] 4] edebug-make-after-form #[(form after-index) "\n F" [edebug-after 0 after-index form] 4]] 3) (defalias 'edebug-unwrap #[(sexp) ":2@=8@=08A@AAGV,\fB.\f@)" [sexp edebug-after 3 edebug-enter forms 1 progn] 3 "\ Return the unwrapped SEXP or return it as is if it is not wrapped. The SEXP might be the result of wrapping a body, which is a list of expressions; a `progn' form will be returned enclosing these forms."]) (defalias 'edebug-unwrap* #[(sexp) " ! \n=\n !\n:\n\" \n)" [edebug-unwrap sexp new-sexp mapcar edebug-unwrap*] 3 "\ Return the sexp recursively unwrapped."]) (byte-code "\"\"\"\"\"\"#\"#\"#\"!H!Q\"\"\"\"\"\"\"\"\"\"#\"\"\"\"\"\"#@\"AB\"CD\"EF\"GH\"IJ\"KL\"MN\"OP\"QR\"ST\"UV\"WX\"YZ\"" [defalias edebug-defining-form #[(cursor form-begin form-end speclist) "@)A)A\n +\f S$" [cursor offsets expressions edebug-make-form-wrapper form-begin form-end speclist] 6] edebug-make-form-wrapper #[(cursor form-begin form-end &optional speclist) " \n\" A@) Ɠ @)Ɖ \n \f C\"J!C!\fY Y!\f n\f \nƓ# \f \n\fA@Ɠ\f8Ɠ, !\f\"!\f!\f!#p! &&!B#)\f#F#.\n" [edebug-get-form-data-entry form-begin form-end form-data-entry entry make-marker nil edebug-form-begin-marker 0 edebug-inside-func edebug-def-interactive edebug-def-args edebug-def-name edebug-old-def-name result edebug-offset-index edebug-offset-list speclist edebug-match cursor edebug-make-enter-wrapper edebug-form gensym "edebug-anon" edebug-make-form-data-entry end begin name 2 edebug-make-top-form-data-entry message "Edebug: %s" vconcat edebug-clear-frequency-count edebug-clear-coverage edebug-top-window-data get-buffer-window selected-window window window-start put edebug] 9] edebug-clear-frequency-count #[(name) " \fG\"#" [put name edebug-freq-count make-vector edebug-offset-list 0] 6] edebug-clear-coverage #[(name) " \fG\"#" [put name edebug-coverage make-vector edebug-offset-list unknown] 6] edebug-form #[(cursor) " \" A@) :i @= @9)! \f\"\n:S@=S\n\f@ !!AB$e\f@!\n!\nA)!#+ 9 >! ! \f@! \fA!# \fA!\" !*" [edebug-top-element-required cursor "Expected form" form offset quote head get-edebug-spec spec edebug-new-cursor new-cursor &define edebug-defining-form edebug-after-offset symbol-name edebug-make-before-and-after-form edebug-inc-offset edebug-list-form (t nil) fboundp keywordp edebug-stop-before-symbols edebug-make-after-form edebug-move-cursor] 7] edebug-forms #[(cursor) " \"" [edebug-match cursor (&rest form)] 3] put byte-optimizer byte-compile-inline-expand edebug-sexps #[(cursor) " \"" [edebug-match cursor (&rest sexp)] 3] edebug-list-form-args #[(head cursor) " !L\n:É\n\"*{\n=-\"){\n=@\"){\n9{\n!{ !qd\"){\"){\"))" [get-edebug-spec head spec nil edebug-error-point edebug-best-error edebug-match-sublist cursor t edebug-match (&rest form) 0 (&rest sexp) edebug-macrop edebug-eval-macro-args] 4] edebug-list-form #[(cursor) " \"ĉ @) A)A \n\n  +3Ă9D!=W !  !!:ĉ \"*=  \")=  \")9 !!  \")  \")  \")+B:<@= \" #!," [edebug-top-element-required cursor "Expected elements" t nil edebug-&rest edebug-&optional edebug-gate head offsets expressions edebug-syntax-error "nil head" interactive-p check-it edebug-def-interactive edebug-move-cursor edebug-interactive-p-name get-edebug-spec spec edebug-error-point edebug-best-error edebug-match-sublist edebug-match (&rest form) 0 (&rest sexp) edebug-macrop edebug-eval-macro-args \, (("," def-form) body) edebug-match-specs (lambda-expr body) "Head of list form must be a symbol or lambda expression."] 6] boundp edebug-after-dotted-spec nil edebug-matching-depth 0 150 edebug-max-depth edebug-no-match #[(cursor &rest edebug-args) "\n! \f ##b\f\"\f\"" [edebug-error-point edebug-before-offset cursor edebug-best-error edebug-args edebug-gate edebug-&optional apply edebug-syntax-error throw no-match] 3] edebug-match #[(cursor specs) " #-" [nil edebug-gate edebug-error-point edebug-best-error edebug-&rest edebug-&optional edebug-match-specs cursor specs] 5] edebug-match-one-spec #[(cursor spec) "9\n\n\"!\n\"\";\"\n\"<+\n\"" [spec edebug-match-symbol cursor vectorp edebug-match append nil edebug-match-string edebug-match-list] 5] edebug-match-specs #[(cursor specs remainder-handler) " V\f!T\fł\f:+ \fC\n#)  @)<{A \"  @)  A)  C   + \f\n#@+\f@9!H=! \fA\"=\fAA! \fA@\"\fA \"\n \n#+)" [edebug-matching-depth edebug-max-depth error "too deep - perhaps infinite loop in spec?" specs nil t edebug-dotted-spec edebug-match-specs cursor remainder-handler edebug-no-match "Dotted spec required." this-offset this-form offsets expressions spec rest symbol-name 0 first-char 38 get-edebug-spec 58 edebug-match-one-spec] 6] mapcar #[(pair) " @ A#" [put pair edebug-form-spec] 4] ((&optional . edebug-match-&optional) (&rest . edebug-match-&rest) (&or . edebug-match-&or) (form . edebug-match-form) (sexp . edebug-match-sexp) (body . edebug-match-body) (&define . edebug-match-&define) (name . edebug-match-name) (:name . edebug-match-colon-name) (arg . edebug-match-arg) (def-body . edebug-match-def-body) (def-form . edebug-match-def-form) (lambda-expr . edebug-match-lambda-expr) (¬ . edebug-match-¬) (&key . edebug-match-&key) (place . edebug-match-place) (gate . edebug-match-gate)) edebug-match-symbol #[(cursor symbol) " !\n:\f\n\"a\n\f!a $\f!a !]\f #  \fB\" \f\"" [debug-on-error edebug-signal-name edebug error edebug-signal-data edebug-original-signal] 4 "\ Signal an error. Args are SIGNAL-NAME, and associated DATA. A signal name is a symbol with an `error-conditions' property that is a list of condition names. A handler for any of those names will get to handle this signal. The symbol `error' should always be one of them. DATA should be a list. Its elements are printed as part of the error message. If the signal is handled, DATA is made available to the handler. See `condition-case'. This is the Edebug replacement for the standard `signal'. It should only be active while Edebug is. It checks `debug-on-error' to see whether it should call the debugger. When execution is resumed, the error is signaled again."]) (byte-code "\"\"#" [defalias edebug-enter #[(edebug-function edebug-args edebug-body) "i\n\\\f\\ \n \f Վ? ׉ \f SSMݎ !#.N#@$N%N&$!()B)+B+NN=#0!!! ." [edebug-entered t max-lisp-eval-depth 100 max-specpdl-size 200 edebug-debugger debug-on-error debug-on-quit edebug-on-error edebug-on-quit executing-macro pre-command-hook post-command-hook edebug-outside-post-command-hook edebug-outside-pre-command-hook edebug-outside-executing-macro cl-lexical-debug edebug-outside-debug-on-quit edebug-outside-debug-on-error debugger ((byte-code "\n\fƇ" [edebug-outside-executing-macro executing-macro pre-command-hook edebug-outside-pre-command-hook post-command-hook edebug-outside-post-command-hook nil] 1)) edebug-continue-kbd-macro nil edebug-next-execution-mode edebug-initial-mode edebug-execution-mode signal edebug-signal ((byte-code "KM" [signal edebug-original-signal] 2)) edebug-enter edebug-function edebug-args edebug-body edebug edebug-data edebug-def-mark edebug-freq-count edebug-coverage marker-buffer edebug-buffer edebug-stack 0 edebug-offset-indices edebug-on-entry step temp put edebug-trace edebug-enter-trace] 13] edebug-enter-trace #[(edebug-body) "T#! \n#!*" [edebug-stack-depth nil edebug-result edebug-print-trace-before format "%s args: %s" edebug-function edebug-args edebug-body edebug-print-trace-after "%s result: %s"] 6] put edebug-tracing edebug-form-spec (form body)] 4) (defalias 'edebug-tracing '(macro . #[(msg &rest body) " DBE BBBDEF" [let ((edebug-stack-depth (1+ edebug-stack-depth)) edebug-result) edebug-print-trace-before msg prog1 setq edebug-result progn body edebug-print-trace-after format "%s result: %s" (edebug-result)] 10 "\ Print MSG in *edebug-trace* before and after evaluating BODY. The result of BODY is also printed."])) (defalias 'edebug-print-trace-before #[(msg) " \f\"$" [edebug-trace-display edebug-trace-buffer "%s{ %s" make-string edebug-stack-depth 58 msg] 6 "\ Function called to print trace info before expression evaluation. MSG is printed after `::::{ '."]) (defalias 'edebug-print-trace-after #[(msg) " \f\"$" [edebug-trace-display edebug-trace-buffer "%s} %s" make-string edebug-stack-depth 58 msg] 6 "\ Function called to print trace info after expression evaluation. MSG is printed after `::::} '."]) (byte-code "\"\"\"\"\"\" \"!/!8\"!F!O\"\"\"!g!p!y !\"!#!$!%!&!'!(\"\"" [defalias edebug-slow-before #[(edebug-before-index) " \n \n HTI >  # " [edebug-offset-indices edebug-before-index edebug-freq-count edebug-execution-mode (Go-nonstop next) edebug-input-pending-p edebug-debugger before nil] 4] edebug-fast-before (lambda (edebug-before-index)) edebug-slow-after #[(edebug-before-index edebug-after-index edebug-value) " \n \n HTI  =! ! #" [edebug-offset-indices edebug-after-index edebug-freq-count edebug-test-coverage edebug-update-coverage edebug-execution-mode Go-nonstop edebug-input-pending-p edebug-value edebug-debugger after] 4] edebug-fast-after (lambda (edebug-before-index edebug-after-index edebug-value) edebug-value) edebug-run-slow #[nil "\"\"" [defalias edebug-before edebug-slow-before edebug-after edebug-slow-after] 3] edebug-run-fast #[nil "\"\"" [defalias edebug-before edebug-fast-before edebug-after edebug-fast-after] 3] edebug-update-coverage #[nil " H=\"\n= I\" \n=?\" I)" [edebug-coverage edebug-after-index old-result ok-coverage unknown edebug-value] 4] boundp edebug-break-result nil edebug-global-break-result edebug-debugger #[(edebug-offset-index edebug-arg-mode edebug-value) "A@\n A@ ȏ \n - -\f?-\f!\f\nD 8D \"AAB>U\nU X -" [edebug-data edebug-breakpoints edebug-offset-index edebug-break-data edebug-break-condition edebug-global-break-condition nil (byte-code " !" [eval edebug-global-break-condition edebug-global-break-result] 2) ((error)) edebug-global-break edebug-break eval edebug-break-result 2 delq edebug-execution-mode (go continue Continue-fast) edebug-input-pending-p edebug-display edebug-value] 5] edebug-eval-list edebug-previous-result edebug-mark mark edebug-mark-marker mark-marker edebug-display #[nil "\n\f8 H\\\f8 p`    \f \nߎ \f \f !!g\"%\")&=s)!*~*!, !@\" \n!@!!q`b&=g>\"%\")A! 7 &=7 )@=!D)!D>>?@AB#DC,DCE#D7F=DG!DH!&=f>a7F=aIJ!K >7L=MJ!7F=MN!7O=MJ!7P=MN!Q7R>&=S )pT!qbTq." [t nil edebug-def-mark 2 edebug-data edebug-offset-index 3 selected-window edebug-mark edebug-eval-list edebug-eval-result-list overlay-arrow-position overlay-arrow-string cursor-in-echo-area edebug-outside-c-i-e-a edebug-outside-o-a-s edebug-outside-o-a-p edebug-trace-window-start edebug-trace-window edebug-eval-buffer edebug-buffer-points edebug-outside-windows edebug-outside-mark edebug-outside-point edebug-outside-buffer edebug-outside-window edebug-window-data edebug-buffer-outside-point edebug-point edebug-stop edebug-active ((byte-code "\n\fƇ" [edebug-outside-o-a-p overlay-arrow-position edebug-outside-o-a-s overlay-arrow-string edebug-outside-c-i-e-a cursor-in-echo-area nil] 1)) buffer-name edebug-buffer debug-on-error error "Buffer defining %s not found" edebug-function edebug-arg-mode after edebug-compute-previous-result edebug-value edebug-save-windows edebug-current-windows edebug-save-displayed-buffer-points edebug-get-displayed-buffer-points edebug-pop-to-buffer edebug-eval-display select-window before (40 35 96) "Source has changed - reevaluate definition of %s" edebug-adjust-window edebug-input-pending-p step edebug-execution-mode edebug-overlay-arrow beep quit message "Quit" edebug-report-error edebug-break edebug-global-break "Global Break: %s => %s" edebug-global-break-condition edebug-global-break-result edebug-break-condition "Break: %s => %s" edebug-break-result Continue-fast "Break" "" sit-for 1 edebug-previous-result continue edebug-sit-for 0 trace Trace-fast ((byte-code " =\f  ! \f \f!)! 4 2 !\n s !H! T \n\" @o\f!o =o\f A#)!!q =b ! ۓۇ" [window-buffer edebug-buffer selected-window edebug-get-buffer-window window edebug-window-data window-start get-buffer-window edebug-trace-buffer edebug-trace-window edebug-trace-window-start edebug-save-windows edebug-set-windows edebug-outside-windows edebug-save-displayed-buffer-points edebug-set-buffer-points edebug-buffer-points set-window-start edebug-window-live-p no-force edebug-outside-window select-window edebug-outside-buffer edebug-outside-point marker-buffer edebug-mark-marker edebug-outside-mark nil] 5)) (step next) edebug-recursive-edit current-buffer] 18] edebug-number-of-recursions 0 edebug-recursion-depth unread-command-char -1 unread-command-event last-input-event last-command-event unread-command-events last-event-frame last-nonmenu-event track-mouse edebug-recursive-edit #[nil " q ) ĉ  \n \f  !\"#$%&'()*+ \n \fĉ./0y12 \f \n ! 5=7>!KM @ .(" [buffer-read-only edebug-outside-buffer match-data recursion-depth nil current-local-map standard-output standard-input defining-kbd-macro last-command-char last-command this-command last-input-char unread-command-char last-input-event last-command-event unread-command-event unread-command-events last-event-frame last-nonmenu-event track-mouse edebug-outside-track-mouse edebug-outside-last-nonmenu-event edebug-outside-last-event-frame edebug-outside-unread-command-events edebug-outside-unread-command-event edebug-outside-last-command-event edebug-outside-last-input-event edebug-outside-unread-command-char edebug-outside-last-input-char edebug-outside-this-command edebug-outside-last-command edebug-outside-last-command-char edebug-outside-defining-kbd-macro edebug-outside-standard-input edebug-outside-standard-output edebug-outside-map edebug-inside-windows edebug-backtrace-buffer edebug-interactive-p edebug-entered edebug-recursion-depth edebug-outside-match-data edebug-buffer-read-only ((byte-code "\n\f \n \f އ" [edebug-outside-last-command-char last-command-char edebug-outside-last-command-event last-command-event edebug-outside-last-command last-command edebug-outside-this-command this-command edebug-outside-unread-command-char unread-command-char edebug-outside-unread-command-event unread-command-event edebug-outside-unread-command-events unread-command-events edebug-outside-last-input-char last-input-char edebug-outside-last-input-event last-input-event edebug-outside-last-event-frame last-event-frame edebug-outside-last-nonmenu-event last-nonmenu-event edebug-outside-track-mouse track-mouse edebug-outside-standard-output standard-output edebug-outside-standard-input standard-input edebug-outside-defining-kbd-macro defining-kbd-macro nil] 1)) -1 edebug-outside-debug-on-error edebug-outside-debug-on-quit edebug-continue-kbd-macro debug-on-quit debug-on-error fboundp zmacs-deactivate-region edebug-execution-mode go edebug-arg-mode (after error) message "Break" t signal edebug-original-signal edebug-mode ((byte-code "M\n\f\n!\f\f!!!:q >. \f !>!" [signal edebug-signal edebug-backtrace-buffer kill-buffer edebug-eval-buffer store-match-data edebug-outside-match-data buffer-name edebug-buffer edebug-execution-mode (go Go-nonstop) edebug-overlay-arrow edebug-buffer-read-only buffer-read-only use-local-map edebug-outside-map get-buffer-create " bogus edebug buffer"] 2)) recursive-edit] 23] edebug-adjust-window #[(old-start) " 1  \" 1 ` W#ł( ǥ[yy`)\" " [pos-visible-in-window-p old-start set-window-start selected-window window-start -1 window-height 2 0] 4]] 3) (defconst edebug-arrow-alist (quote ((Continue-fast . "=") (Trace-fast . "-") (continue . ">") (trace . "->") (step . "=>") (next . "=>") (go . "<>") (Go-nonstop . ".."))) "\ Association list of arrows for each edebug mode.") (defalias (quote edebug-overlay-arrow) #[nil "y`)\n A  p)" [0 pos edebug-execution-mode edebug-arrow-alist overlay-arrow-string make-marker overlay-arrow-position] 4]) (defalias 'edebug-toggle-save-all-windows #[nil "? !Ƃ\"" [edebug-save-windows edebug-current-windows edebug-outside-windows edebug-inside-windows message "Window saving is %s for all windows." "on" "off"] 4 "\ Toggle the saving and restoring of all windows. Also, each time you toggle it on, the inside and outside window configurations become the same as the current configuration." nil]) (defalias (quote edebug-changing-windows) (quote (macro . #[(&rest body) " \"BBBB" [let ((window (selected-window))) (setq edebug-inside-windows (edebug-current-windows t)) (edebug-set-windows edebug-outside-windows) append body ((setq edebug-outside-windows (edebug-current-windows edebug-save-windows)) (edebug-set-windows edebug-inside-windows))] 7]))) (defalias 'edebug-toggle-save-selected-window #[nil "=% !! \"! !)Z >@ \" \"Z !! B! !) >ĝh #" [edebug-save-windows t selected-window window edebug-current-windows edebug-inside-windows edebug-set-windows edebug-outside-windows delq edebug-window-list message "Window saving is %s for %s." "on" "off"] 4 "\ Toggle the saving and restoring of the selected window. Also, each time you toggle it on, the inside and outside window configurations become the same as the current configuration." nil]) (defalias 'edebug-toggle-save-windows #[(arg) " " [arg edebug-toggle-save-selected-window edebug-toggle-save-all-windows] 1 "\ Toggle the saving and restoring of windows. With prefix, toggle for just the selected window. Otherwise, toggle for all windows." "P"]) (defalias 'edebug-where #[nil "!\f! b" [edebug-active error "Edebug is not active" edebug-pop-to-buffer edebug-buffer edebug-point] 2 "\ Show the debug windows and where we stopped in the program." nil]) (defalias 'edebug-view-outside #[nil "!\f!!b!\"" [edebug-active error "Edebug is not active" edebug-current-windows edebug-save-windows edebug-inside-windows edebug-set-windows edebug-outside-windows edebug-outside-point message "Window configuration outside of Edebug. Return with %s" substitute-command-keys "\\\\[edebug-where]"] 4 "\ Change to the outside window configuration." nil]) (defalias 'edebug-bounce-point #[(arg) "!Ë)" [edebug-active error "Edebug is not active" ((byte-code " !\nbp` ! !$\n! \f@\"" [edebug-pop-to-buffer edebug-outside-buffer edebug-outside-point message "Current buffer: %s Point: %s Mark: %s" marker-buffer edebug-mark-marker marker-position "" edebug-sit-for arg edebug-buffer edebug-window-data] 6))] 2 "\ Bounce the point in the outside current buffer. If prefix arg is supplied, sit for that many seconds before returning. The default is one second." "p"]) (defalias (quote edebug-find-stop-point) #[nil " N ! \" )@8\n!/x`)Z\nGW_\nHV_TEWy\nHXy B} \"." [edebug-form-data-symbol edebug-def-name edebug data markerp error "%s is not instrumented for Edebug" edebug-data edebug-def-mark 2 offset-vector looking-at "[ ]" " " nil offset len i 0 message "Point is not on an expression in %s."] 4]) (defalias 'edebug-next-breakpoint #[nil "  @ A\nN@ A@ 8  -!G@@ XGA5R@U@   @H\\b 8nςo A@ A@!\"P!).)" [edebug-find-stop-point edebug-stop-point edebug-def-name index edebug edebug-data edebug-def-mark edebug-breakpoints 2 offset-vector nil breakpoint message "No breakpoints in this function." breaks "Temporary " "" format "Condition: %s" edebug-safe-prin1-to-string] 7 "\ Move point to the next breakpoint, or first if none past point." nil]) (defalias 'edebug-modify-breakpoint #[(flag &optional condition temporary) " { @ A\nN@ A@ 8    \" Z EB\"R\n#k\n\"k g\n\"k! A H\\b.)" [edebug-find-stop-point edebug-stop-point edebug-def-name index edebug edebug-data edebug-def-mark edebug-breakpoints 2 offset-vector nil present delq flag edebug-sort-alist condition temporary < message "Breakpoint set in %s with condition: %s" "Breakpoint set in %s" "Breakpoint unset in %s" "No breakpoint here"] 5 "\ Modify the breakpoint for the form at point or after it according to FLAG: set if t, clear if nil. Then move to that point. If CONDITION or TEMPORARY are non-nil, add those attributes to the breakpoint. "]) (defalias 'edebug-set-breakpoint #[(arg) " #" [edebug-modify-breakpoint t nil arg] 4 "\ Set the breakpoint of nearest sexp. With prefix argument, make it a temporary breakpoint." "P"]) (defalias 'edebug-unset-breakpoint #[nil "!" [edebug-modify-breakpoint nil] 2 "\ Clear the breakpoint of nearest sexp." nil]) (defalias 'edebug-set-conditional-breakpoint #[(arg condition) "\n #" [edebug-modify-breakpoint t condition arg] 4 "\ Set a conditional breakpoint at nearest sexp. The condition is evaluated in the outside context. With prefix argument, make it a temporary breakpoint." (list current-prefix-arg (let ((edebug-stop-point (edebug-find-stop-point))) (if edebug-stop-point (let* ((edebug-def-name (car edebug-stop-point)) (index (cdr edebug-stop-point)) (edebug-data (get edebug-def-name (quote edebug))) (edebug-breakpoints (car (cdr edebug-data))) (edebug-break-data (assq index edebug-breakpoints)) (edebug-break-condition (car (cdr edebug-break-data)))) (read-minibuffer (format "Condition in %s: " edebug-def-name) (if edebug-break-condition (format "%s" edebug-break-condition) (format "")))))))]) (byte-code "\"\"\"" [defalias edebug-set-global-break-condition #[(expression) "" [expression edebug-global-break-condition] 2 nil (list (read-minibuffer "Global Condition: " (format "%s" edebug-global-break-condition)))] edebug-set-mode #[(mode shortmsg msg) "T =\n ! \n!" [edebug-recursion-depth recursion-depth mode edebug-execution-mode message shortmsg exit-recursive-edit edebug-next-execution-mode msg] 2] edebug-step-through-mode edebug-step-mode] 3) (defalias 'edebug-step-mode #[nil "#" [edebug-set-mode step "" "Edebug will stop at next stop point."] 4 "\ Proceed to next stop point." nil]) (defalias 'edebug-next-mode #[nil "#" [edebug-set-mode next "" "Edebug will stop after next eval."] 4 "\ Proceed to next `after' stop point." nil]) (defalias 'edebug-go-mode #[(arg) "!#" [arg edebug-set-breakpoint t edebug-set-mode go "Go..." "Edebug will go until break."] 4 "\ Go, evaluating until break. With prefix ARG, set temporary break at current point and go." "P"]) (defalias 'edebug-Go-nonstop-mode #[nil "#" [edebug-set-mode Go-nonstop "Go-Nonstop..." "Edebug will not stop at breaks."] 4 "\ Go, evaluating without debugging." nil]) (defalias 'edebug-trace-mode #[nil "#" [edebug-set-mode trace "Tracing..." "Edebug will trace with pause."] 4 "\ Begin trace mode." nil]) (defalias 'edebug-Trace-fast-mode #[nil "#" [edebug-set-mode Trace-fast "Trace fast..." "Edebug will trace without pause."] 4 "\ Trace with no wait at each step." nil]) (defalias 'edebug-continue-mode #[nil "#" [edebug-set-mode continue "Continue..." "Edebug will pause at breakpoints."] 4 "\ Begin continue mode." nil]) (defalias 'edebug-Continue-fast-mode #[nil "#" [edebug-set-mode Continue-fast "Continue fast..." "Edebug will stop and go at breakpoints."] 4 "\ Trace with no wait at each step." nil]) (defalias 'edebug-goto-here #[nil "!" [edebug-go-mode t] 2 "\ Proceed to this stop point." nil]) (defalias 'edebug-stop #[nil "!" [message "Stop"] 2 "\ Stop execution and do not continue. Useful for exiting from trace or continue loop." nil]) (defalias 'edebug-forward-sexp #[(arg) "" [nil (byte-code " !!)" [t parse-sexp-ignore-comments forward-sexp arg edebug-go-mode] 2) ((error (edebug-step-out)))] 3 "\ Proceed from the current point to the end of the ARGth sexp ahead. If there are not ARG sexps ahead, then do edebug-step-out." "p"]) (defalias 'edebug-step-out #[nil "" [nil (byte-code "!!)!)" [t parse-sexp-ignore-comments up-list 1 edebug-go-mode] 2) ((error (byte-code "`!`U !)" [start-point down-list -1 edebug-step-mode edebug-go-mode t] 2)))] 3 "\ Proceed from the current point to the end of the containing sexp. If there is no containing sexp that is not the top level defun, go to the end of the last sexp, or if that is the same point, then step." nil]) (defalias (quote edebug-instrument-function) #[(func) "\nN ! !q b \n)1 :+\n\"\n1\n\")" [nil func-marker func edebug markerp marker-buffer edebug-eval-top-level-form message "%s is already instrumented." error "Don't know where %s is defined"] 3]) (defalias 'edebug-instrument-callee #[nil "!\n!!! `!@)#p!)  !)" [looking-at "(" error "You must be before a list form" down-list 1 edebug-get-form-data-entry entry edebug-original-read func edebug-instrument-function] 3 "\ Instrument the definition of the function or macro about to be called. Do this when stopped before the form or it will be too late. One side effect of using this command is that the next time the function or macro is called, Edebug will be called there as well." nil]) (defalias 'edebug-step-in #[nil "  \"!)" [edebug-instrument-callee func edebug-on-entry temp edebug-go-mode nil] 4 "\ Step into the definition of the function or macro about to be called. This first does `edebug-instrument-callee' to ensure that it is instrumented. Then it does `edebug-on-entry' and switches to `go' mode." nil]) (defalias 'edebug-on-entry #[(function &optional flag) " Ă\f#" [put function edebug-on-entry flag temp t] 4 "\ Cause Edebug to stop when FUNCTION is called. With prefix argument, make this temporary so it is automatically cancelled the first time the function is entered." "aEdebug on entry to: \nP"]) (byte-code "\"!KM" [defalias cancel-edebug-on-entry #[(function) " #" [put function edebug-on-entry nil] 4 nil "aEdebug on entry to: "] fboundp edebug-original-debug-on-entry debug-on-entry] 3) (defalias 'edebug-top-level-nonstop #[nil " " [Go-nonstop edebug-execution-mode top-level] 1 "\ Set mode to Go-nonstop, and exit to top-level. This is useful for exiting even if unwind-protect code may be executed." nil]) (put (quote edebug-outside-excursion) (quote edebug-form-spec) t) (defalias 'edebug-outside-excursion '(macro . #[(&rest body) "\nBBBBBBE" [save-excursion (if edebug-save-windows (progn (setq edebug-inside-windows (edebug-current-windows edebug-save-windows)) (edebug-set-windows edebug-outside-windows))) (set-buffer edebug-buffer) (store-match-data edebug-outside-match-data) let ((last-command-char edebug-outside-last-command-char) (last-command-event edebug-outside-last-command-event) (last-command edebug-outside-last-command) (this-command edebug-outside-this-command) (unread-command-char edebug-outside-unread-command-char) (unread-command-event edebug-outside-unread-command-event) (unread-command-events edebug-outside-unread-command-events) (last-input-char edebug-outside-last-input-char) (last-input-event edebug-outside-last-input-event) (last-event-frame edebug-outside-last-event-frame) (last-nonmenu-event edebug-outside-last-nonmenu-event) (track-mouse edebug-outside-track-mouse) (standard-output edebug-outside-standard-output) (standard-input edebug-outside-standard-input) (executing-macro edebug-outside-executing-macro) (defining-kbd-macro edebug-outside-defining-kbd-macro) (pre-command-hook edebug-outside-pre-command-hook) (post-command-hook edebug-outside-post-command-hook) (overlay-arrow-position edebug-outside-o-a-p) (overlay-arrow-string edebug-outside-o-a-s) (cursor-in-echo-area edebug-outside-c-i-e-a)) unwind-protect (set-buffer edebug-outside-buffer) (goto-char edebug-outside-point) (if (marker-buffer (edebug-mark-marker)) (set-marker (edebug-mark-marker) edebug-outside-mark)) body ((if edebug-save-windows (edebug-set-windows edebug-inside-windows)) (setq edebug-outside-last-command-char last-command-char edebug-outside-last-command-event last-command-event edebug-outside-last-command last-command edebug-outside-this-command this-command edebug-outside-unread-command-char unread-command-char edebug-outside-unread-command-event unread-command-event edebug-outside-unread-command-events unread-command-events edebug-outside-last-input-char last-input-char edebug-outside-last-input-event last-input-event edebug-outside-last-event-frame last-event-frame edebug-outside-last-nonmenu-event last-nonmenu-event edebug-outside-track-mouse track-mouse edebug-outside-standard-output standard-output edebug-outside-standard-input standard-input edebug-outside-executing-macro executing-macro edebug-outside-defining-kbd-macro defining-kbd-macro edebug-outside-pre-command-hook pre-command-hook edebug-outside-post-command-hook post-command-hook edebug-outside-o-a-p overlay-arrow-position edebug-outside-o-a-s overlay-arrow-string edebug-outside-c-i-e-a cursor-in-echo-area))] 12 "\ Evaluate an expression list in the outside context. Return the result of the last expression."])) (byte-code "!\"\"\"\"\"" [boundp cl-debug-env nil defalias edebug-eval #[(edebug-expr) " \"! !" [cl-debug-env eval cl-macroexpand-all edebug-expr] 4] edebug-safe-eval #[(edebug-expr) "" [edebug-err (edebug-eval edebug-expr) ((error (byte-code "\n@N\nA@#" [edebug-format "%s: %s" edebug-err error-message] 4)))] 3] edebug-install-custom-print-funcs edebug-install-custom-print edebug-reset-print-funcs edebug-uninstall-custom-print edebug-uninstall-custom-print-funcs] 3) (defalias 'edebug-install-custom-print #[nil "!\"\"\"\"\"͇" [require cust-print defalias edebug-prin1 custom-prin1 edebug-print custom-print edebug-prin1-to-string custom-prin1-to-string edebug-format custom-format edebug-message custom-message "Installed"] 3 "\ Replace print functions used by Edebug with custom versions." nil]) (defalias 'edebug-uninstall-custom-print #[nil "\"\"\"\"\"ˇ" [defalias edebug-prin1 prin1 edebug-print print edebug-prin1-to-string prin1-to-string edebug-format format edebug-message message "Uninstalled"] 3 "\ Replace edebug custom print functions with internal versions." nil]) (byte-code " \"!!\"\"" [edebug-uninstall-custom-print defalias edebug-report-error #[(edebug-value) "\n@N\n@\"\nA##" [message "%s: %s" edebug-value error-message format "peculiar error (%s)" mapconcat #[(edebug-arg) " !" [prin1-to-string edebug-arg] 2] ", "] 7] boundp print-level nil print-circle edebug-safe-prin1-to-string #[(value) " \n \f   !-" [t edebug-print-length print-length edebug-print-level print-level edebug-print-circle print-circle nil print-readably print-escape-newlines edebug-prin1-to-string value] 5] edebug-compute-previous-result #[(edebug-previous-value) "WY!#)$!!P\n" [edebug-previous-value 256 0 format "Result: %s = %s" single-key-description edebug-unwrap-results edebug-unwrap* "Result: " edebug-safe-prin1-to-string edebug-previous-result] 5]] 3) (defalias 'edebug-previous-result #[nil "\n\"" [message "%s" edebug-previous-result] 3 "\ Print the previous result." nil]) (defalias 'edebug-eval-expression #[(edebug-expr) "  ! !q! \n \f  !\"#$%&'()*+,-./0124q5b ! 8;!\\[edebug-step-mode] in any buffer. Also see bindings for the eval list buffer, *edebug*. The edebug buffer commands: \\{edebug-mode-map} Global commands prefixed by `global-edebug-prefix': \\{global-edebug-map} Options: edebug-setup-hook edebug-all-defs edebug-all-forms edebug-save-windows edebug-save-displayed-buffer-points edebug-initial-mode edebug-trace edebug-test-coverage edebug-continue-kbd-macro edebug-print-length edebug-print-level edebug-print-circle edebug-on-error edebug-on-quit edebug-on-signal edebug-unwrap-results edebug-global-break-condition "]) (defalias 'edebug-eval-result-list #[nil "\"*" [Go-nonstop nil edebug-trace edebug-execution-mode mapcar edebug-safe-eval edebug-eval-list] 3 "\ Return a list of evaluations of edebug-eval-list"]) (byte-code "\"\"" [defalias edebug-eval-display-list #[(edebug-eval-result-list) " Z\"\" \n q \nA\n@! @! !\nA\nA !+" [edebug-eval-list edebug-eval-buffer format ";%s\n" make-string window-width 2 45 edebug-comment-line standard-output edebug-eval-list-temp erase-buffer prin1 terpri edebug-eval-result-list princ edebug-pop-to-buffer] 7] edebug-create-eval-buffer #[nil "!?!q " [edebug-eval-buffer buffer-name get-buffer-create "*edebug*" edebug-eval-mode] 2]] 3) (defalias 'edebug-eval-display #[(edebug-eval-result-list) "\n !" [edebug-eval-result-list edebug-create-eval-buffer edebug-eval-display-list] 2 "\ Display expressions and evaluations in EVAL-LIST. It modifies the context by popping up the eval display."]) (defalias 'edebug-eval-redisplay #[nil "  ! !q! \n \f  !\"#$%&'()*+,-./0124q5b ! 8 !." [edebug-create-eval-buffer edebug-save-windows edebug-current-windows edebug-inside-windows edebug-set-windows edebug-outside-windows edebug-buffer store-match-data edebug-outside-match-data edebug-outside-last-command-char edebug-outside-last-command-event edebug-outside-last-command edebug-outside-this-command edebug-outside-unread-command-char edebug-outside-unread-command-event edebug-outside-unread-command-events edebug-outside-last-input-char edebug-outside-last-input-event edebug-outside-last-event-frame edebug-outside-last-nonmenu-event edebug-outside-track-mouse edebug-outside-standard-output edebug-outside-standard-input edebug-outside-executing-macro edebug-outside-defining-kbd-macro edebug-outside-pre-command-hook edebug-outside-post-command-hook edebug-outside-o-a-p edebug-outside-o-a-s edebug-outside-c-i-e-a cursor-in-echo-area overlay-arrow-string overlay-arrow-position post-command-hook pre-command-hook defining-kbd-macro executing-macro standard-input standard-output track-mouse last-nonmenu-event last-event-frame last-input-event last-input-char unread-command-events unread-command-event unread-command-char this-command last-command last-command-event last-command-char ((byte-code "\n!   \n \f  !\"#$%&'()*+," [edebug-save-windows edebug-set-windows edebug-inside-windows last-command-char edebug-outside-last-command-char last-command-event edebug-outside-last-command-event last-command edebug-outside-last-command this-command edebug-outside-this-command unread-command-char edebug-outside-unread-command-char unread-command-event edebug-outside-unread-command-event unread-command-events edebug-outside-unread-command-events last-input-char edebug-outside-last-input-char last-input-event edebug-outside-last-input-event last-event-frame edebug-outside-last-event-frame last-nonmenu-event edebug-outside-last-nonmenu-event track-mouse edebug-outside-track-mouse standard-output edebug-outside-standard-output standard-input edebug-outside-standard-input executing-macro edebug-outside-executing-macro defining-kbd-macro edebug-outside-defining-kbd-macro pre-command-hook edebug-outside-pre-command-hook post-command-hook edebug-outside-post-command-hook overlay-arrow-position edebug-outside-o-a-p overlay-arrow-string edebug-outside-o-a-s cursor-in-echo-area edebug-outside-c-i-e-a] 2)) edebug-outside-buffer edebug-outside-point marker-buffer edebug-mark-marker edebug-outside-mark nil edebug-eval-display-list edebug-eval-result-list] 21 "\ Redisplay eval list in outside environment. May only be called from within edebug-recursive-edit."]) (defalias (quote edebug-visit-eval-list) #[nil " \n!" [edebug-eval-redisplay edebug-pop-to-buffer edebug-eval-buffer] 2 nil nil]) (defalias 'edebug-update-eval-list #[nil "`eb m! B#<ywgUm! B \f \nb*" [nil new-list starting-point edebug-skip-whitespace forward-sexp 1 edebug-last-sexp re-search-forward "^;" t " \n " 59 edebug-eval-list edebug-eval-redisplay] 4 "\ Replace the evaluation list with the sexps now in the eval buffer." nil]) (defalias 'edebug-delete-eval-item #[nil "# y`#y`| " [re-search-backward "^;" nil nofail 1 re-search-forward 0 edebug-update-eval-list] 5 "\ Delete the item under point and redisplay." nil]) (defvar edebug-eval-mode-map nil "\ Keymap for edebug-eval-mode. Superset of lisp-interaction-mode.") (byte-code "&\n!#####" [edebug-eval-mode-map copy-keymap lisp-interaction-mode-map define-key "" edebug-where "" edebug-delete-eval-item "" edebug-update-eval-list "" edebug-eval-last-sexp "\n" edebug-eval-print-last-sexp] 4) (defalias 'edebug-eval-mode #[nil " !" [lisp-interaction-mode edebug-eval-mode major-mode "Edebug-Eval" mode-name use-local-map edebug-eval-mode-map] 2 "\ Mode for evaluation list buffer while in Edebug. In addition to all Interactive Emacs Lisp commands there are local and global key bindings to several Edebug specific commands. E.g. `edebug-step-mode' is bound to \\[edebug-step-mode] in the Edebug buffer and \\\\[edebug-step-mode] in any buffer. Eval list buffer commands: \\{edebug-eval-mode-map} Global commands prefixed by global-edebug-prefix: \\{global-edebug-map} "]) (defalias 'edebug #[(&optional edebug-arg-mode &rest debugger-args) "4 \n=4 @\f@ʼn? \n \f =?1\f.\f#" [edebug-entered recursion-depth edebug-recursion-depth edebug-offset-indices debugger-args nil edebug-arg-mode edebug-break edebug-global-break edebug-break-condition edebug-break-data edebug-breakpoints edebug-value edebug-offset-index edebug-display error apply debug] 7 "\ Replacement for debug. If we are running an edebugged function, show where we last were. Otherwise call debug normally."]) (defalias 'edebug-backtrace #[nil "\n!!!\f \n q\feb`#\\y!K`y`|,!,y`|,+" [edebug-backtrace-buffer buffer-name generate-new-buffer "*Backtrace*" standard-output t 50 nil last-ok-point print-length print-escape-newlines backtrace truncate-lines re-search-forward "^ (?edebug" 0 looking-at "^ (edebug-after" 1 "^ edebug"] 5 "\ Display a non-working backtrace. Better than nothing..." nil]) (defalias 'edebug-trace-display #[(buf-name fmt &rest args) " \n! ! db \f#ͱ Z! `\"db !!+\n" [selected-window get-buffer-create buf-name buffer nil buf-window edebug-pop-to-buffer t truncate-lines apply edebug-format fmt args "\n" vertical-motion 1 window-height set-window-start bury-buffer select-window] 4 "\ In buffer BUF-NAME, display FMT and ARGS at the end and make it visible. The buffer is created if it does not exist. You must include newlines in FMT to break lines, but one newline is appended."]) (defalias 'edebug-trace #[(fmt &rest args) "\n \f$" [apply edebug-trace-display edebug-trace-buffer fmt args] 5 "\ Convenience call to edebug-trace-display using edebug-trace-buffer"]) (defalias 'edebug-display-freq-count #[nil " N N N@8\nGS   X\n H\\by`Z   S Xc\n HXMy` c T  X  H  H\n H\\bigU҂Z)`ZZ]\"W>݂Uނ!+sc /. " [edebug-form-data-symbol function edebug-freq-count counts edebug-coverage coverages edebug data def-mark 2 edebug-points i nil last-index first-index start-of-line start-of-count-line last-count 0 1 -1 ";#" 40 col coverage count make-string 32 (unknown ok-coverage) "=" "" int-to-string " " "\n"] 6 "\ Display the frequency count data for each line of the current definition. The frequency counts are inserted as comment lines after each line, and you can undo all insertions with one `undo' command. The counts are inserted starting under the `(' before an expression or the `)' after an expression, or on the last char of a symbol. The counts are only displayed when they differ from previous counts on the same line. If coverage is being tested, whenever all known results of an expression are `eq', the char `=' will be appended after the count for that expression. Note that this is always the case for an expression only evaluated once. To clear the frequency count and coverage data for a definition, reinstrument it." nil]) (defalias 'edebug-temp-display-freq-count #[nil "  )" [nil buffer-read-only undo-boundary edebug-display-freq-count read-char unread-command-char undo] 1 "\ Temporarily display the frequency count data for the current definition. It is removed when you hit any char." nil]) (byte-code "\"!" [defalias edebug-toggle #[(variable) "!?L!#" [variable eval message "%s: %s"] 5] require easymenu] 3) (defconst edebug-mode-menus (quote ("Edebug" "----" ["Stop" edebug-stop t] ["Step" edebug-step-mode t] ["Next" edebug-next-mode t] ["Trace" edebug-trace-mode t] ["Trace Fast" edebug-Trace-fast-mode t] ["Continue" edebug-continue-mode t] ["Continue Fast" edebug-Continue-fast-mode t] ["Go" edebug-go-mode t] ["Go Nonstop" edebug-Go-nonstop-mode t] "----" ["Help" edebug-help t] ["Abort" abort-recursive-edit t] ["Quit to Top Level" top-level t] ["Quit Nonstop" edebug-top-level-nonstop t] "----" ("Jumps" ["Forward Sexp" edebug-forward-sexp t] ["Step In" edebug-step-in t] ["Step Out" edebug-step-out t] ["Goto Here" edebug-goto-here t]) ("Breaks" ["Set Breakpoint" edebug-set-breakpoint t] ["Unset Breakpoint" edebug-unset-breakpoint t] ["Set Conditional Breakpoint" edebug-set-conditional-breakpoint t] ["Set Global Break Condition" edebug-set-global-break-condition t] ["Show Next Breakpoint" edebug-next-breakpoint t]) ("Views" ["Where am I?" edebug-where t] ["Bounce to Current Point" edebug-bounce-point t] ["View Outside Windows" edebug-view-outside t] ["Previous Result" edebug-previous-result t] ["Show Backtrace" edebug-backtrace t] ["Display Freq Count" edebug-display-freq-count t]) ("Eval" ["Expression" edebug-eval-expression t] ["Last Sexp" edebug-eval-last-sexp t] ["Visit Eval List" edebug-visit-eval-list t]) ("Options" ["Edebug All Defs" edebug-all-defs t] ["Edebug All Forms" edebug-all-forms t] "----" ["Toggle Tracing" (edebug-toggle (quote edebug-trace)) t] ["Toggle Coverage Testing" (edebug-toggle (quote edebug-test-coverage)) t] ["Toggle Window Saving" edebug-toggle-save-windows t] ["Toggle Point Saving" (edebug-toggle (quote edebug-save-displayed-buffer-points)) t]))) "\ Lemacs style menus for Edebug.") (byte-code "\"\"\" ! \"%\"!3\"8\" !" [defalias edebug-emacs-19-specific #[nil "\"MMM \n \f\f@\fA\"\n!/\nC\n\nQ\n@\f@!\"\f@B#\nA\n4+_ \"\"" [defalias edebug-window-live-p window-live-p edebug-mark #[nil "!" [mark t] 2] edebug-set-conditional-breakpoint #[(arg condition) "\n #" [edebug-modify-breakpoint t condition arg] 4 "Set a conditional breakpoint at nearest sexp.\nThe condition is evaluated in the outside context.\nWith prefix argument, make it a temporary breakpoint." (list current-prefix-arg (let ((edebug-stop-point (edebug-find-stop-point))) (if edebug-stop-point (let* ((edebug-def-name (car edebug-stop-point)) (index (cdr edebug-stop-point)) (edebug-data (get edebug-def-name (quote edebug))) (edebug-breakpoints (car (cdr edebug-data))) (edebug-break-data (assq index edebug-breakpoints)) (edebug-break-condition (car (cdr edebug-break-data))) (edebug-expression-history (if edebug-break-condition (cons edebug-break-condition read-expression-history) read-expression-history))) (prog1 (read-from-minibuffer "Condition: " nil read-expression-map t (quote edebug-expression-history)) (setq read-expression-history edebug-expression-history))))))] edebug-eval-expression #[(edebug-expr) "  ! !q! \n \f  !\"#$%&'()*+,-./0124q5b ! 8;!