;ELC ;;; compiled by roland@churchy.gnu.ai.mit.edu on Fri May 12 12:04:37 1995 ;;; from file /gd/gnu/emacs/19.0/lisp/edebug.el ;;; emacs version 19.28.91.1. ;;; 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)B!! M B‡" ["$Revision: 3.5.1.19 $" raw-version string-match "[0-9.]*" 0 edebug-version current-load-list require backquote fboundp defalias fset "liberte@cs.uiuc.edu" edebug-maintainer-address] 4) #@43 Submit, via mail, a bug report on edebug. (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 (#$ . 731) nil]) #@291 *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-setup-hook nil (#$ . -1336)) #@444 *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-defs nil (#$ . -1677)) #@197 *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-all-forms nil (#$ . -2169)) #@395 *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-eval-macro-args nil (#$ . -2415)) #@165 *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-stop-before-symbols nil (#$ . -2865)) #@348 *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-windows t (#$ . -3089)) #@473 *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-save-displayed-buffer-points nil (#$ . -3487)) #@262 *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-initial-mode (quote step) (#$ . -4028)) #@298 *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-trace nil (#$ . -4351)) #@316 *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-test-coverage nil (#$ . -4694)) #@113 *If non-nil, continue defining or executing any keyboard macro. Use this with caution since it is not debugged. (defvar edebug-continue-kbd-macro nil (#$ . -5063)) #@75 *Default value of `print-length' to use while printing results in Edebug. (defvar edebug-print-length 50 (#$ . -5233)) #@74 *Default value of `print-level' to use while printing results in Edebug. (defvar edebug-print-level 50 (#$ . -5358)) #@75 *Default value of `print-circle' to use while printing results in Edebug. (defvar edebug-print-circle t (#$ . -5481)) #@241 *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-unwrap-results nil (#$ . -5606)) #@447 *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-error t (#$ . -5901)) #@57 *Value bound to `debug-on-quit' while Edebug is active. (defvar edebug-on-quit t (#$ . -6393)) #@120 *If non-nil, an expression to test for at every stop point. If the result is non-nil, then break. Errors are ignored. (defvar edebug-global-break-condition nil (#$ . -6495)) #@165 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-spec '(macro . #[(symbol spec) "\nD\fDF" [put quote symbol (quote edebug-form-spec) spec] 5 (#$ . 6677)])) #@69 For compatibility with old version. Use `def-edebug-spec' instead. (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 (#$ . 6981)])) (defalias 'get-edebug-spec #[(symbol) "N9 N  *" [symbol edebug-form-spec nil indirect] 3]) #@55 Integer used by `edebug-gensym' to produce new names. (defvar edebug-gensym-index 0 (#$ . 7356)) #@207 Generate a fresh uninterned symbol. There is an optional argument, PREFIX. PREFIX is the string that begins the new name. Most people take just the default, except when debugging needs suggest otherwise. (defalias 'edebug-gensym #[(&optional prefix) " )!P\\\f!\n\f! *" [prefix "G" nil "" newname newsymbol int-to-string edebug-gensym-index 1 intern-soft make-symbol] 4 (#$ . 7460)]) #@78 Return t if OBJECT is a keyword. A keyword is a symbol that starts with `:'. (defalias 'edebug-keywordp #[(object) "9\f!HU" [object symbol-name 0 58] 2 (#$ . 7883)]) #@102 Return t if OBJECT is a lambda list keyword. A lambda list keyword is a symbol that starts with `&'. (defalias 'edebug-lambda-list-keywordp #[(object) "9\f!HU" [object symbol-name 0 38] 2 (#$ . 8064)]) (defalias 'edebug-last-sexp #[nil "!`)`{!@" [read-from-string forward-sexp -1] 3]) #@54 Return a list of windows, in order of `next-window'. (defalias 'edebug-window-list #[nil " C ! =\f\nB\f! \n+" [selected-window first-window window-list next-window next] 3 (#$ . 8369)]) #@38 Return non-nil if WINDOW is visible. (defalias 'edebug-window-live-p #[(window) "  \" =\f =\f\" \f *=" [selected-window first-window next-window t next window] 4 (#$ . 8579)]) (defalias 'edebug-lookup-function #[(object) "9!K" [object fboundp] 3]) (put (quote edebug-lookup-function) (quote byte-optimizer) (quote byte-compile-inline-expand)) #@64 Return the macro named by OBJECT, or nil if it is not a macro. (defalias 'edebug-macrop #[(object) "9!K)<+@=+A!+" [object fboundp macro edebug-functionp] 4 (#$ . 8964)]) #@71 Returns the function named by OBJECT, or nil if it is not a function. (defalias 'edebug-functionp #[(object) "9!K)!0<1@=1A@<1" [object fboundp subrp lambda] 4 (#$ . 9172)]) (defalias 'edebug-sort-alist #[(alist function) " \"" [sort alist #[(e1 e2) " @\n@\"" [function e1 e2] 3]] 3]) #@42 Name of the buffer to put trace info in. (defconst edebug-trace-buffer "*edebug-trace*" (#$ . 9502)) (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]) (defalias 'edebug-get-displayed-buffer-points #[nil "  ! =* !q`B B ! -" [selected-window first-window next-window next nil buffer-point-list buffer window-buffer] 3]) (defalias 'edebug-set-buffer-points #[(buffer-points) "p \"q)" [current-buffer mapcar #[(buf-point) " @! @q Ab" [buffer-name buf-point] 2] buffer-points] 3]) (defalias '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]) (defalias '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]) (byte-code "\"\"\"\"! K\"" [defalias 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) #@721 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'. (defalias 'edebug-read #[(&optional stream) " p= !" [stream standard-input edebug-read-and-maybe-wrap-form edebug-original-read] 2 (#$ . 11228)]) (byte-code "!\fK\"" [fboundp edebug-original-eval-defun defalias eval-defun] 3) #@372 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: FUNCTIONNAME'. Otherwise, it prints in the minibuffer. (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 (#$ . 12205) "P"]) (defalias (quote edebug-defun) (quote edebug-eval-top-level-form)) #@271 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. (defalias 'edebug-eval-top-level-form #[nil " *!" [eval t edebug-all-defs edebug-all-forms edebug-read-top-level-form] 3 (#$ . 12868) nil]) (defalias 'edebug-read-top-level-form #[nil "` b)" [starting-point end-of-defun beginning-of-defun edebug-read-and-maybe-wrap-form] 2]) (defalias (quote edebug-all-defuns) (quote edebug-all-defs)) #@39 Toggle edebugging of all definitions. (defalias 'edebug-all-defs #[nil "? Â\"" [edebug-all-defs message "Edebugging all definitions is %s." "on" "off"] 3 (#$ . 13499) nil]) #@33 Toggle edebugging of all forms. (defalias 'edebug-all-forms #[nil "? Â\"" [edebug-all-forms message "Edebugging all forms is %s." "on" "off"] 3 (#$ . 13690) nil]) (defalias 'edebug-install-read-eval-functions #[nil "K=? \"\"" [read edebug-read elisp-eval-region-install defalias eval-defun edebug-eval-defun] 3 nil nil]) (defalias '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]) (byte-code "! B‡" [make-variable-buffer-local edebug-form-data nil current-load-list] 2) (defalias 'edebug-make-form-data-entry #[(symbol begin end) " \nE" [symbol begin end] 3]) (defalias 'edebug-form-data-name #[(entry) "@" [entry] 1]) (put (quote edebug-form-data-name) (quote byte-optimizer) (quote byte-compile-inline-expand)) (defalias 'edebug-form-data-begin #[(entry) "A@" [entry] 1]) (put (quote edebug-form-data-begin) (quote byte-optimizer) (quote byte-compile-inline-expand)) (defalias 'edebug-form-data-end #[(entry) " 8" [2 entry] 2]) (put (quote edebug-form-data-end) (quote byte-optimizer) (quote byte-compile-inline-expand)) (defalias 'edebug-set-form-data-entry #[(entry name begin end) " A@\nÓ8 Ó" [entry name begin nil 2 end] 3]) (put (quote edebug-set-form-data-entry) (quote byte-optimizer) (quote byte-compile-inline-expand)) (defalias '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]) (defalias 'edebug-form-data-symbol #[nil "`!@) !" [edebug-get-form-data-entry entry error "Not inside instrumented form"] 3]) (defalias 'edebug-make-top-form-data-entry #[(new-entry) " ! \nB" [edebug-clear-form-data-entry new-entry edebug-form-data] 2]) (defalias 'edebug-clear-form-data-entry #[(entry) "\n\n\"" [entry delq edebug-form-data] 3]) (defalias 'edebug-syntax-error #[(&rest args) "\n\"" [signal invalid-read-syntax args] 3]) (byte-code "\"\fW \fI\fT I I I I I I I I I *B" [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 current-load-list] 4) (defalias 'edebug-next-token-class #[nil " gH" [edebug-skip-whitespace edebug-read-syntax-table] 2]) (defalias 'edebug-skip-whitespace #[nil "wgUww" [" \n\f" nil 59 "^\n "] 2]) (defalias '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]) (byte-code "\nB\nB\nB\nB" [nil edebug-offsets current-load-list edebug-offsets-stack edebug-current-offset edebug-read-dotted-list] 2) (defalias 'edebug-initialize-offsets #[nil "" [nil edebug-current-offset] 2]) (put (quote edebug-initialize-offsets) (quote byte-optimizer) (quote byte-compile-inline-expand)) (defalias '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]) (defalias 'edebug-store-after-offset #[(point) " A AA A@A \fA@" [edebug-read-dotted-list edebug-current-offset nil point edebug-offsets-stack] 4]) (defalias 'edebug-ignore-offset #[nil "AA" [edebug-current-offset] 2]) (byte-code "##" [put edebug-storing-offsets edebug-form-spec (form body) lisp-indent-hook 1] 4) (defalias 'edebug-storing-offsets '(macro . #[(point &rest body) " D\fBBBB" [unwind-protect progn edebug-store-before-offset point body ((edebug-store-after-offset (point)))] 4])) (byte-code "\nB" [((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 current-load-list] 2) (defalias '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]) (defalias 'edebug-read-symbol #[(stream) " !\nhH=u" [edebug-original-read stream edebug-read-syntax-table symbol -1] 3]) (defalias 'edebug-read-string #[(stream) " !hU\fu" [edebug-original-read stream 34 -1] 3]) (defalias '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]) (defalias '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]) (defalias '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]) (defalias 'edebug-read-vector #[(stream) "u =!\nB\n\")u" [1 nil elements edebug-next-token-class rbracket edebug-read-storing-offsets stream apply vector] 3]) (byte-code "! B‡" [boundp edebug-dotted-spec nil current-load-list] 2) (defalias 'edebug-new-cursor #[(expressions offsets) " ! \" \fB" [vectorp expressions append nil offsets] 3]) (defalias 'edebug-set-cursor #[(cursor expressions offsets) " \n" [cursor expressions offsets] 2]) (put (quote edebug-set-cursor) (quote byte-optimizer) (quote byte-compile-inline-expand)) (defalias 'edebug-cursor-expressions #[(cursor) "@" [cursor] 1]) (put (quote edebug-cursor-expressions) (quote byte-optimizer) (quote byte-compile-inline-expand)) (defalias 'edebug-cursor-offsets #[(cursor) "A" [cursor] 1]) (put (quote edebug-cursor-offsets) (quote byte-optimizer) (quote byte-compile-inline-expand)) (defalias 'edebug-empty-cursor #[(cursor) "@?" [cursor] 1]) (put (quote edebug-empty-cursor) (quote byte-optimizer) (quote byte-compile-inline-expand)) (defalias 'edebug-top-element #[(cursor) "@@" [cursor] 1]) (put (quote edebug-top-element) (quote byte-optimizer) (quote byte-compile-inline-expand)) (defalias 'edebug-top-element-required #[(cursor &rest error) " \n\"\n@)\n #\n@@)" [edebug-dotted-spec edebug-no-match cursor "Dot expected." apply error] 5]) (defalias 'edebug-top-offset #[(cursor) "A@" [cursor] 1]) (put (quote edebug-top-offset) (quote byte-optimizer) (quote byte-compile-inline-expand)) (defalias 'edebug-move-cursor #[(cursor) "@) \"@AAA" [cursor edebug-no-match "Not enough arguments."] 4]) (defalias 'edebug-before-offset #[(cursor) "A): @@ S)" [cursor offset] 2]) (defalias 'edebug-after-offset #[(cursor) "A@): A )" [cursor offset] 2]) (byte-code " B B B! B B B B\n BƇ" [edebug-top-window-data current-load-list edebug-&optional edebug-&rest boundp edebug-gate nil edebug-def-name edebug-old-def-name edebug-error-point edebug-best-error] 2) (defalias '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]) (defalias '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]) (byte-code " B B B" [edebug-def-args current-load-list edebug-def-interactive edebug-inside-func] 2) (defalias 'edebug-interactive-p-name #[nil " \"!" [intern format "edebug-%s-interactive-p" edebug-def-name] 4]) #@38 Wrap the FORMS of a definition body. (defalias 'edebug-wrap-def-body #[(forms) " BC !E !" [edebug-def-interactive let edebug-interactive-p-name ((interactive-p)) edebug-make-enter-wrapper forms] 4 (#$ . 22501)]) (defalias 'edebug-make-enter-wrapper #[(forms) " !DB\fBBDF" [edebug-def-name edebug-old-def-name edebug-gensym "edebug-anon" edebug-enter quote edebug-inside-func list edebug-def-args function lambda nil forms] 7]) (byte-code " B B B" [edebug-form-begin-marker current-load-list edebug-offset-index edebug-offset-list] 2) (defalias 'edebug-inc-offset #[(offset) " \nZ BT" [edebug-offset-index offset edebug-form-begin-marker edebug-offset-list] 3]) (defalias 'edebug-make-before-and-after-form #[(before-index form after-index) "\nD \fF" [edebug-after edebug-before before-index after-index form] 4]) (defalias 'edebug-make-after-form #[(form after-index) "\n F" [edebug-after 0 after-index form] 4]) #@205 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) ":2@=8@=08A@AAGV,\fB.\f@)" [sexp edebug-after 3 edebug-enter forms 1 progn] 3 (#$ . 23478)]) #@40 Return the sexp recursively unwrapped. (defalias 'edebug-unwrap* #[(sexp) " ! \n=\n !\n:\n\" \n)" [edebug-unwrap sexp new-sexp mapcar edebug-unwrap*] 3 (#$ . 23845)]) (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]) (defalias '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 edebug-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]) (defalias 'edebug-clear-frequency-count #[(name) " \fG\"#" [put name edebug-freq-count make-vector edebug-offset-list 0] 6]) (defalias 'edebug-clear-coverage #[(name) " \fG\"#" [put name edebug-coverage make-vector edebug-offset-list unknown] 6]) (defalias '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 edebug-keywordp edebug-stop-before-symbols edebug-make-after-form edebug-move-cursor] 7]) (defalias 'edebug-forms #[(cursor) " \"" [edebug-match cursor (&rest form)] 3]) (put (quote edebug-forms) (quote byte-optimizer) (quote byte-compile-inline-expand)) (defalias 'edebug-sexps #[(cursor) " \"" [edebug-match cursor (&rest sexp)] 3]) (put (quote edebug-sexps) (quote byte-optimizer) (quote byte-compile-inline-expand)) (defalias '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]) (put (quote edebug-list-form-args) (quote byte-optimizer) (quote byte-compile-inline-expand)) (defalias '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]) (byte-code "! B! B B‡" [boundp edebug-after-dotted-spec nil current-load-list edebug-matching-depth 0 150 edebug-max-depth] 2) (defalias '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]) (defalias 'edebug-match #[(cursor specs) " #-" [nil edebug-gate edebug-error-point edebug-best-error edebug-&rest edebug-&optional edebug-match-specs cursor specs] 5]) (defalias '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]) (defalias '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] (quote ((&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)))) (defalias '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 (#$ . 38067)]) (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 edebug-outside-pre-command-hook pre-command-hook edebug-outside-post-command-hook 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]) (defalias '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 (quote edebug-tracing) (quote edebug-form-spec) (quote (form body))) #@99 Print MSG in *edebug-trace* before and after evaluating BODY. The result of BODY is also printed. (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 (#$ . 40526)])) #@98 Function called to print trace info before expression evaluation. MSG is printed after `::::{ '. (defalias 'edebug-print-trace-before #[(msg) " \f\"$" [edebug-trace-display edebug-trace-buffer "%s{ %s" make-string edebug-stack-depth 58 msg] 6 (#$ . 40929)]) #@97 Function called to print trace info after 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 (#$ . 41200)]) (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]) (defalias 'edebug-fast-before #[(edebug-before-index) "" [nil] 1]) (defalias '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]) (defalias 'edebug-fast-after #[(edebug-before-index edebug-after-index edebug-value) "" [edebug-value] 1]) (defalias 'edebug-run-slow #[nil "\"\"" [defalias edebug-before edebug-slow-before edebug-after edebug-slow-after] 3]) (defalias 'edebug-run-fast #[nil "\"\"" [defalias edebug-before edebug-fast-before edebug-after edebug-fast-after] 3]) (edebug-run-slow) (defalias 'edebug-update-coverage #[nil " H=\"\n= I\" \n=?\" I)" [edebug-coverage edebug-after-index old-result ok-coverage unknown edebug-value] 4]) (byte-code " B B B B B B!! B!.\n Bɇ" [edebug-arg-mode current-load-list edebug-breakpoints edebug-break-data edebug-break edebug-global-break edebug-break-condition boundp edebug-break-result nil edebug-global-break-result] 2) (defalias '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]) (byte-code " B B B B B B B B B B!1\f B!> B\"\"" [edebug-point current-load-list edebug-outside-buffer edebug-outside-point edebug-outside-mark edebug-window-data edebug-outside-windows edebug-eval-buffer edebug-outside-o-a-p edebug-outside-o-a-s edebug-outside-c-i-e-a boundp edebug-eval-list nil edebug-previous-result defalias edebug-mark mark edebug-mark-marker mark-marker] 3) (defalias '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]) (byte-code "! B! B B B B B B B B B B B B B!Q B B!b B B B B B B B! B! B! B! B! B!! B B BՇ" [boundp edebug-number-of-recursions 0 current-load-list edebug-recursion-depth edebug-outside-match-data edebug-backtrace-buffer edebug-inside-windows edebug-interactive-p edebug-outside-map edebug-outside-standard-output edebug-outside-standard-input edebug-outside-last-command-char edebug-outside-last-command edebug-outside-this-command edebug-outside-last-input-char edebug-outside-unread-command-char unread-command-char -1 edebug-outside-unread-command-event unread-command-event nil edebug-outside-last-command-event edebug-outside-unread-command-events edebug-outside-last-input-event edebug-outside-last-event-frame edebug-outside-last-nonmenu-event edebug-outside-track-mouse last-input-event last-command-event unread-command-events last-event-frame last-nonmenu-event track-mouse edebug-unread-command-char-warning edebug-unread-command-event-warning] 2) (defalias '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]) (defalias '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]) #@50 Association list of arrows for each edebug mode. (defconst edebug-arrow-alist (quote ((Continue-fast . "=") (Trace-fast . "-") (continue . ">") (trace . "->") (step . "=>") (next . "=>") (go . "<>") (Go-nonstop . ".."))) (#$ . 50815)) (defalias '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]) #@174 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. (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 (#$ . 51230) nil]) (defalias 'edebug-changing-windows '(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])) #@183 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. (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 (#$ . 52006) nil]) #@130 Toggle the saving and restoring of windows. With prefix, toggle for just the selected window. Otherwise, toggle for all windows. (defalias 'edebug-toggle-save-windows #[(arg) " " [arg edebug-toggle-save-selected-window edebug-toggle-save-all-windows] 1 (#$ . 52589) "P"]) #@61 Show the debug windows and where we stopped in the program. (defalias 'edebug-where #[nil "!\f! b" [edebug-active error "Edebug is not active" edebug-pop-to-buffer edebug-buffer edebug-point] 2 (#$ . 52876) nil]) #@45 Change to the outside window configuration. (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 (#$ . 53105) nil]) #@147 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. (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 (#$ . 53543) "p"]) (defalias '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]) #@65 Move point to the next breakpoint, or first if none past point. (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 (#$ . 54525) nil]) #@207 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-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 (#$ . 55068)]) #@91 Set the breakpoint of nearest sexp. With prefix argument, make it a temporary breakpoint. (defalias 'edebug-set-breakpoint #[(arg) " #" [edebug-modify-breakpoint t nil arg] 4 (#$ . 55825) "P"]) #@39 Clear the breakpoint of nearest sexp. (defalias 'edebug-unset-breakpoint #[nil "!" [edebug-modify-breakpoint nil] 2 (#$ . 56029) nil]) #@152 Set a conditional breakpoint at nearest sexp. The condition is evaluated in the outside context. With prefix argument, make it a temporary breakpoint. (defalias 'edebug-set-conditional-breakpoint #[(arg condition) "\n #" [edebug-modify-breakpoint t condition arg] 4 (#$ . 56174) (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 "")))))))]) (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)))]) (defalias '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]) (defalias (quote edebug-step-through-mode) (quote edebug-step-mode)) #@29 Proceed to next stop point. (defalias 'edebug-step-mode #[nil "#" [edebug-set-mode step "" "Edebug will stop at next stop point."] 4 (#$ . 57488) nil]) #@37 Proceed to next `after' stop point. (defalias 'edebug-next-mode #[nil "#" [edebug-set-mode next "" "Edebug will stop after next eval."] 4 (#$ . 57651) nil]) #@91 Go, evaluating until break. With prefix ARG, set temporary break at current point and go. (defalias 'edebug-go-mode #[(arg) "!#" [arg edebug-set-breakpoint t edebug-set-mode go "Go..." "Edebug will go until break."] 4 (#$ . 57819) "P"]) #@35 Go, evaluating without debugging. (defalias 'edebug-Go-nonstop-mode #[nil "#" [edebug-set-mode Go-nonstop "Go-Nonstop..." "Edebug will not stop at breaks."] 4 (#$ . 58074) nil]) #@19 Begin trace mode. (defalias 'edebug-trace-mode #[nil "#" [edebug-set-mode trace "Tracing..." "Edebug will trace with pause."] 4 (#$ . 58263) nil]) #@34 Trace with no wait at each step. (defalias 'edebug-Trace-fast-mode #[nil "#" [edebug-set-mode Trace-fast "Trace fast..." "Edebug will trace without pause."] 4 (#$ . 58421) nil]) #@22 Begin continue mode. (defalias 'edebug-continue-mode #[nil "#" [edebug-set-mode continue "Continue..." "Edebug will pause at breakpoints."] 4 (#$ . 58610) nil]) #@34 Trace with no wait at each step. (defalias 'edebug-Continue-fast-mode #[nil "#" [edebug-set-mode Continue-fast "Continue fast..." "Edebug will stop and go at breakpoints."] 4 (#$ . 58782) nil]) #@29 Proceed to this stop point. (defalias 'edebug-goto-here #[nil "!" [edebug-go-mode t] 2 (#$ . 58987) nil]) #@85 Stop execution and do not continue. Useful for exiting from trace or continue loop. (defalias 'edebug-stop #[nil "!" [message "Stop"] 2 (#$ . 59102) nil]) #@127 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. (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 (#$ . 59267) "p"]) #@204 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. (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 (#$ . 59593) nil]) (defalias '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]) #@265 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. (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 (#$ . 60339) nil]) #@211 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. (defalias 'edebug-step-in #[nil "  \"!)" [edebug-instrument-callee func edebug-on-entry temp edebug-go-mode nil] 4 (#$ . 60875) nil]) #@162 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. (defalias 'edebug-on-entry #[(function &optional flag) " Ă\f#" [put function edebug-on-entry flag temp t] 4 (#$ . 61238) "aEdebug on entry to: \nP"]) (defalias 'cancel-edebug-on-entry #[(function) " #" [put function edebug-on-entry nil] 4 nil "aEdebug on entry to: "]) (byte-code "! KM" [fboundp edebug-original-debug-on-entry debug-on-entry] 2) #@120 Set mode to Go-nonstop, and exit to top-level. This is useful for exiting even if unwind-protect code may be executed. (defalias 'edebug-top-level-nonstop #[nil " " [Go-nonstop edebug-execution-mode top-level] 1 (#$ . 61775) nil]) (put (quote edebug-outside-excursion) (quote edebug-form-spec) t) #@95 Evaluate an expression list in the outside context. Return the result of the last expression. (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 (#$ . 62082)])) (byte-code "! B‡" [boundp cl-debug-env nil current-load-list] 2) (defalias 'edebug-eval #[(edebug-expr) " \"! !" [cl-debug-env eval cl-macroexpand-all edebug-expr] 4]) (defalias '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]) (byte-code "\"\"\"" [defalias edebug-install-custom-print-funcs edebug-install-custom-print edebug-reset-print-funcs edebug-uninstall-custom-print edebug-uninstall-custom-print-funcs] 3) #@62 Replace print functions used by Edebug with custom versions. (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 (#$ . 65441) nil]) #@63 Replace edebug custom print functions with internal versions. (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 (#$ . 65811) nil]) (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]) (byte-code "! B! B B‡" [boundp print-level nil current-load-list print-circle print-readably] 2) (defalias '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]) (defalias '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]) #@28 Print the previous result. (defalias 'edebug-previous-result #[nil "\n\"" [message "%s" edebug-previous-result] 3 (#$ . 67062) nil]) #@125 Evaluate an expression in the outside environment. If interactive, prompt for the expression. Print result in minibuffer. (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-mode #[nil " !" [use-local-map edebug-mode-map] 2 (#$ . 75665)]) #@50 Return a list of evaluations of edebug-eval-list (defalias 'edebug-eval-result-list #[nil "\"*" [Go-nonstop nil edebug-trace edebug-execution-mode mapcar edebug-safe-eval edebug-eval-list] 3 (#$ . 76621)]) (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]) (defalias 'edebug-create-eval-buffer #[nil "!?!q " [edebug-eval-buffer buffer-name get-buffer-create "*edebug*" edebug-eval-mode] 2]) #@107 Display expressions and evaluations in EVAL-LIST. It modifies the context by popping up the eval display. (defalias 'edebug-eval-display #[(edebug-eval-result-list) "\n !" [edebug-eval-result-list edebug-create-eval-buffer edebug-eval-display-list] 2 (#$ . 77359)]) #@99 Redisplay eval list in outside environment. May only be called from within edebug-recursive-edit. (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 (#$ . 77639)]) (defalias 'edebug-visit-eval-list #[nil " \n!" [edebug-eval-redisplay edebug-pop-to-buffer edebug-eval-buffer] 2 nil nil]) #@68 Replace the evaluation list with the sexps now in the eval buffer. (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 (#$ . 80622) nil]) #@44 Delete the item under point and redisplay. (defalias 'edebug-delete-eval-item #[nil "# y`#y`| " [re-search-backward "^;" nil nofail 1 re-search-forward 0 edebug-update-eval-list] 5 (#$ . 80993) nil]) #@66 Keymap for edebug-eval-mode. Superset of lisp-interaction-mode. (defvar edebug-eval-mode-map nil (#$ . 81217)) (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) #@434 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-eval-mode #[nil " !" [lisp-interaction-mode edebug-eval-mode major-mode "Edebug-Eval" mode-name use-local-map edebug-eval-mode-map] 2 (#$ . 81602)]) #@124 Replacement for debug. If we are running an edebugged function, show where we last were. Otherwise call debug normally. (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 (#$ . 82219)]) #@58 Display a non-working backtrace. Better than nothing... (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 (#$ . 82772) nil]) #@196 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-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 (#$ . 83243)]) #@68 Convenience call to edebug-trace-display using edebug-trace-buffer (defalias 'edebug-trace #[(fmt &rest args) "\n \f$" [apply edebug-trace-display edebug-trace-buffer fmt args] 5 (#$ . 83801)]) #@729 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. (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 (#$ . 84005) nil]) #@111 Temporarily display the frequency count data for the current definition. It is removed when you hit any char. (defalias 'edebug-temp-display-freq-count #[nil "  )" [nil buffer-read-only undo-boundary edebug-display-freq-count read-char unread-command-char undo] 1 (#$ . 85350) nil]) (defalias 'edebug-toggle #[(variable) "!?L!#" [variable eval message "%s: %s"] 5]) (require (quote easymenu)) #@32 Lemacs style menus for Edebug. (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]))) (#$ . 85771)) (defalias 'edebug-emacs-19-specific #[nil "\"MBBMM!& B#$H\"\"" [defalias edebug-window-live-p window-live-p edebug-mark #[nil "!" [mark t] 2] read-expression-history current-load-list read-expression-map 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;!