(setq debugger (quote debug)) (defun debug (&rest debugger-args) "\ Enter debugger. Returns if user says \"continue\". Arguments are mainly for use when this is called from the internals of the evaluator. You may call with no args, or you may pass nil as the first arg and any other args you like. In that case, the list of args after the first will be printed into the backtrace buffer." (byte-code "ÎÏ!ˆÃÐ ÑÒ!ÃÓŽŠÔ‹))ˆ‰ ˆ.‡" [debugger-value debugger-match-data debug-on-error nil debug-on-quit debugger-buffer debugger-step-after-exit standard-output print-length debugger-args t inhibit-trace buffer-read-only debug-on-next-call message "Entering debugger..." match-data generate-new-buffer "*Backtrace*" ((byte-code "Â!ˆÃ !‡" [debugger-buffer debugger-match-data kill-buffer store-match-data] 3)) ((byte-code "É!ˆÊ ˆpËÌ *ˆebˆÍ ˆÎ`ÏÐ!ˆÑÒ!ˆ`\"ˆ@Ó>ƒH Ôcˆ@Õ=ƒD Ö×\"ˆØÒ!ˆÙcˆÚ ‚E Ç‚¥ @Û=ƒl ÜcˆÒ8‰ˆÝ p\"ˆÞcˆØÒ!ˆßcˆÚ ‚¥ @à=ƒ‚ ácˆÝÒ8p\"ˆÞc‚¥ @=ƒŽ âc‚¥ …¥ Ý@Ç=ƒŸ A‚ p\"ˆÞcˆãä!ˆãä!ˆå +‡" [debugger-buffer standard-output print-length debugger-args t debugger-value inhibit-trace nil buffer-read-only pop-to-buffer erase-buffer 50 backtrace debugger-mode delete-region forward-sexp 8 forward-line 1 (lambda debug) "Entering: " debug backtrace-debug 4 delete-char 42 beginning-of-line exit "Return value: " prin1 10 32 error "Signalling: " "Beginning evaluation of function call form: " message "" recursive-edit] 19))] 9)) (defun debugger-step-through nil "\ Proceed, stepping through subexpressions of this expression. Enter another debugger on next entry to eval, apply or funcall." (interactive) (byte-code "ˆ ‰ˆÃÄ!ˆÅ ‡" [debugger-step-after-exit t nil message "Proceding, will debug on next eval or call." exit-recursive-edit] 3)) (defun debugger-continue nil "\ Continue, evaluating this expression without stopping." (interactive) (byte-code "ÀˆÁÂ!ˆÃ ‡" [nil message "Continuing." exit-recursive-edit] 3)) (defun debugger-return-value (val) "\ Continue, specifying value to return. This is only useful when the value returned from the debugger will be used, such as in a debug on exit from a frame." (interactive "XReturn value (evaluated): ") (byte-code "È ‰ˆÄÅ \"ˆÆ!ˆÇ ‡" [debugger-value val t nil princ "Returning " prin1 exit-recursive-edit] 4)) (defun debugger-frame-number nil "\ Return number of frames in backtrace before the one point points at." (byte-code "ŠÂ ˆ`ÃebˆÄÅ``Æ\\\"Ç\"† ÄÅ``Æ\\\"È\"ƒ- ÉÊ!ˆËÌ!‚. ͈ÎÌ!ˆÏÐ!ˆgÑUƒC ËÌ!‚F ËÐ!ˆÎÌ!ˆ`X…Y T‰ˆ‚3 ˆ *)‡" [opoint count beginning-of-line 0 equal buffer-substring 6 "Signal" "Return" search-forward ":" forward-sexp 1 nil forward-line forward-char 2 40] 15)) (defconst debugger-frame-offset 8 "") (defun debugger-frame nil "\ Request entry to debugger when this frame exits. Applies to the frame whose line point is on in the backtrace." (interactive) (byte-code "ĈŠˆÆ Ç \\ \")ˆgÈUƒ\"