;ELC ;;; compiled by kwzh@hal.gnu.ai.mit.edu on Tue May 2 20:20:09 1995 ;;; from file /gd/gnu/emacs/19.0/lisp/debug.el ;;; emacs version 19.28.90.69. ;;; 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/debug.el' was compiled for Emacs 19")) #@53 List of functions currently set for debug on entry. (defvar debug-function-list nil (#$ . 479)) #@55 Non-nil means "single-step" after the debugger exits. (defvar debugger-step-after-exit nil (#$ . 581)) #@64 This is the value for the debugger to return, when it returns. (defvar debugger-value nil (#$ . 690)) #@68 This is the buffer that was current when the debugger was entered. (defvar debugger-old-buffer nil (#$ . 798)) (byte-code " B B B B B B B B B B B B B B B" [debugger-outer-match-data current-load-list debugger-outer-load-read-function debugger-outer-overriding-local-map debugger-outer-track-mouse debugger-outer-last-command debugger-outer-this-command debugger-outer-unread-command-char debugger-outer-unread-command-events debugger-outer-last-input-event debugger-outer-last-command-event debugger-outer-last-nonmenu-event debugger-outer-last-event-frame debugger-outer-standard-input debugger-outer-standard-output debugger-outer-cursor-in-echo-area debug debugger] 2) #@349 Enter debugger. To return, type \`\[debugger-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. (defalias 'debug #[(&rest debugger-args) "!‰!)p‰  \n \f  !\"#$%&'()*+‰‰  \n\f .#\" !\n  \f &0+." [message "Entering debugger..." nil fundamental-mode default-major-mode get-buffer-create "*Backtrace*" match-data load-read-function overriding-local-map track-mouse last-command this-command unread-command-char unread-command-events last-input-event last-command-event last-nonmenu-event last-event-frame standard-input standard-output cursor-in-echo-area debugger-outer-cursor-in-echo-area debugger-outer-standard-output debugger-outer-standard-input debugger-outer-last-event-frame debugger-outer-last-nonmenu-event debugger-outer-last-command-event debugger-outer-last-input-event debugger-outer-unread-command-events debugger-outer-unread-command-char debugger-outer-this-command debugger-outer-last-command debugger-outer-track-mouse debugger-outer-overriding-local-map debugger-outer-load-read-function debugger-outer-match-data executing-macro debugger-step-after-exit debugger-old-buffer debugger-buffer debug-on-quit debug-on-error debugger-value -1 t ((byte-code " \" q ) !!" [get-buffer-window debugger-buffer visible erase-buffer fundamental-mode kill-buffer store-match-data debugger-outer-match-data] 3)) ((byte-code " ! p +eb `!y`| @>Lc@=\"!cy@=scA@p\"c!cy@=cA@p\"c@=c@=Ap\"c!#$! +" [pop-to-buffer debugger-buffer erase-buffer t 50 print-length print-escape-newlines standard-output backtrace debugger-mode search-forward "\n debug(" 1 debugger-reenable debugger-args (lambda debug) "Entering:\n" debug backtrace-debug 3 delete-char 42 0 exit "Return value: " debugger-value prin1 10 32 error "Signalling: " "Beginning evaluation of function call form:\n" nil message "" buffer-read-only inhibit-trace recursive-edit] 3)) debug-on-next-call] 22 (#$ . 1512) nil]) #@126 Proceed, stepping through subexpressions of this expression. Enter another debugger on next entry to eval, apply or funcall. (defalias 'debugger-step-through #[nil "! " [t debugger-step-after-exit message "Proceeding, will debug on next eval or call." exit-recursive-edit] 2 (#$ . 3966) nil]) #@56 Continue, evaluating this expression without stopping. (defalias 'debugger-continue #[nil "! " [message "Continuing." exit-recursive-edit] 2 (#$ . 4272) nil]) #@156 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. (defalias 'debugger-return-value #[(val) "\" ! " [val debugger-value princ "Returning " t prin1 exit-recursive-edit] 3 (#$ . 4443) "XReturn value (evaluated): "]) #@70 Continue to exit from this frame, with all debug-on-entry suspended. (defalias 'debugger-jump #[nil "\\ ) !\f@\f@\f@K#M\fA)! " [debugger-frame-offset 2 debugger-frame debug-function-list list debug-on-entry-1 nil message "Continuing through this frame" exit-recursive-edit] 6 (#$ . 4777) nil]) #@44 Turn all debug-on-entry functions back on. (defalias 'debugger-reenable #[nil "& @K: @! @ @ @K#M A)" [debug-function-list list debug-convert-byte-code debug-on-entry-1 t nil] 6 (#$ . 5099)]) #@70 Return number of frames in backtrace before the one point points at. (defalias 'debugger-frame-number #[nil "y`eb``\\{Ě``\\{Ś'!!yugU:!>!y`\nXM T* +" [0 count opoint 6 "Signal" "Return" search-forward ":" forward-sexp 1 2 40] 3 (#$ . 5316)]) #@2  (defconst debugger-frame-offset 8 (#$ . 5607)) #@112 Request entry to debugger when this frame exits. Applies to the frame whose line point is on in the backtrace. (defalias 'debugger-frame #[nil "y \n\f\\\")gU!c)yLJ" [0 debugger-frame-number level backtrace-debug debugger-frame-offset t 32 nil buffer-read-only delete-char 1 42] 3 (#$ . 5662) nil]) #@111 Do not enter to debugger when this frame exits. Applies to the frame whose line point is on in the backtrace. (defalias 'debugger-frame-clear #[nil "y \n\f\\\")gU!c)yŇ" [0 debugger-frame-number level backtrace-debug debugger-frame-offset nil 42 buffer-read-only delete-char 1 32] 3 (#$ . 5988) nil]) #@71 Eval an expression, in an environment like that outside the debugger. (defalias 'debugger-eval-expression #[(exp) " ! p q\n \f  \n \f !!!  \n \f ." [buffer-name debugger-old-buffer debugger-outer-track-mouse debugger-outer-last-command debugger-outer-this-command debugger-outer-unread-command-char debugger-outer-unread-command-events debugger-outer-last-input-event debugger-outer-last-command-event debugger-outer-last-nonmenu-event debugger-outer-last-event-frame debugger-outer-standard-input debugger-outer-standard-output debugger-outer-cursor-in-echo-area debugger-outer-overriding-local-map debugger-outer-load-read-function load-read-function overriding-local-map cursor-in-echo-area standard-output standard-input last-event-frame last-nonmenu-event last-command-event last-input-event unread-command-events unread-command-char this-command last-command track-mouse store-match-data debugger-outer-match-data eval-expression exp match-data] 14 (#$ . 6316) (list (read-from-minibuffer "Eval: " nil read-expression-map t (quote read-expression-history)))]) (byte-code "! B b  ! # # # # # # # # # # # #)#" [boundp debugger-mode-map nil current-load-list 32 loop make-keymap suppress-keymap define-key "-" negative-argument "b" debugger-frame "c" debugger-continue "j" debugger-jump "r" debugger-return-value "u" debugger-frame-clear "d" debugger-step-through "l" debugger-list-functions "h" describe-mode "q" top-level "e" debugger-eval-expression " " next-line put debugger-mode mode-class special] 4) #@522 Mode for backtrace buffers, selected in debugger. \ A line starts with `*' if exiting that frame will call the debugger. Type \[debugger-frame] or \[debugger-frame-clear] to set or remove the `*'. When in debugger due to frame being exited, use the \[debugger-return-value] command to override the value being returned from that frame. Use \[debug-on-entry] and \[cancel-debug-on-entry] to control which functions will enter the debugger when called. Complete list of commands: \{debugger-mode-map} (defalias 'debugger-mode #[nil " !\n!" [kill-all-local-variables debugger-mode major-mode "Debugger" mode-name t truncate-lines set-syntax-table emacs-lisp-mode-syntax-table use-local-map debugger-mode-map] 2 (#$ . 8011)]) #@333 Request FUNCTION to invoke debugger each time it is called. If you tell the debugger to continue, FUNCTION's execution proceeds. This works by modifying the definition of FUNCTION, which must be written in Lisp, not predefined. Use \[cancel-debug-on-entry] to cancel the effect of this command. Redefining FUNCTION also cancels it. (defalias 'debug-on-entry #[(function) " \nK!\n\"\nK:\n!\nK:$\n\"\n\nK#M\n >:\n B \n" [debugger-reenable subrp function error "Function %s is a primitive" debug-convert-byte-code "Definition of %s is not a list" debug-on-entry-1 t debug-function-list] 5 (#$ . 8778) "aDebug on entry (to function): "]) #@112 Undo effect of \[debug-on-entry] on FUNCTION. If argument is nil or an empty string, cancel for all functions. (defalias 'cancel-debug-on-entry #[(&optional function) "  ˜ K#M \" !\"" [debugger-reenable function "" debug-on-entry-1 nil delq debug-function-list message "Cancelling debug-on-entry for all functions" mapcar cancel-debug-on-entry] 5 (#$ . 9448) (list (let ((name (completing-read "Cancel debug on entry (to function): " (mapcar (quote list) (mapcar (quote symbol-name) debug-function-list)) nil t nil))) (if name (intern name))))]) (defalias 'debug-convert-byte-code #[(function) "K:?D \"\fA@\f8\f8FC\f,\f8DB\f8:!B\f@BBM*)" [function defn append nil contents byte-code 2 3 body 5 interactive 4 documentation lambda] 6]) (defalias 'debug-on-entry-1 #[(function defn flag) " ! \f\" @=\f A# @=&\f\"ʉ \f AA@;H \f @ A@ AA@E U AA\f @ A@D \f@Κ=d ys \fBy \fA*" [subrp defn error "%s is a built-in function" function macro debug-on-entry-1 flag lambda "%s not user-defined Lisp function" nil prec tail 3 (debug (quote debug)) (debug (quote debug))] 4]) #@64 Display a list of all the functions now set to debug on entry. (defalias 'debugger-list-functions #[nil " !/! & @! A)!!\nq )" ["*Help*" debug-function-list princ "No debug-on-entry functions now\n" "Functions set to debug on entry:\n\n" list prin1 terpri "Note: if you have redefined a function, then it may no longer\n" "be set to debug on entry, even if it is in the list." standard-output help-mode] 4 (#$ . 10633) nil])