;ELC ;;; compiled by roland@churchy.gnu.ai.mit.edu on Fri May 12 12:29:49 1995 ;;; from file /gd/gnu/emacs/19.0/lisp/trace.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/trace.el' was compiled for Emacs 19")) (require (quote advice)) #@50 *Trace output will by default go to that buffer. (defvar trace-buffer "*trace-output*" (#$ . -509)) (byte-code "ÀÁ!„ÂÁ BÀÄ!„ÅÄ BÀÆ!„'ÇÈÉÊË\"\"Æ BÀ‡" [boundp trace-level 0 current-load-list trace-advice-name trace-function\ trace-separator format "%s\n" make-string 70 61] 5) (defalias 'trace-entry-message #[(function level argument-bindings) "ÀÁÂÃÄ SÆ\"Ç# ÈVƒÇ‚É \nÂË\fÇ#&‡" [format "%s%s%d -> %s: %s\n" mapconcat char-to-string make-string level 124 " " 1 "" function #[(binding) "ÀÁ\nÃ\"!ÄÅÁ\nÆ\"!Q‡" [symbol-name ad-arg-binding-field binding name "=" prin1-to-string value] 6] argument-bindings] 10]) (defalias 'trace-exit-message #[(function level value) "ÀÁÂÃÄ SÆ\"Ç# ÈVƒÇ‚É \nË\f!&‡" [format "%s%s%d <- %s: %s\n" mapconcat char-to-string make-string level 124 " " 1 "" function prin1-to-string value] 8]) (defalias 'trace-make-advice #[(function buffer background) "À ÂÃ\fƒ9ÅÆÂÇÈÉÊ DDDÌÍÎÏÐÑÒDÔBBD¯ÕÌÖ×ÐØÒDÙBBDF¯F‚bÅÆÂÇÚÉÊ DDDÛÜÝÐÑÒDÞBBDÕßàÐØÒDáBBD¯\nF$‡" [ad-make-advice trace-advice-name nil t background advice lambda let (trace-level (1+ trace-level)) trace-buffer get-buffer-create buffer save-excursion (set-buffer trace-buffer) (goto-char (point-max)) (if (= trace-level 1) (insert trace-separator)) insert trace-entry-message quote function (trace-level ad-arg-bindings) ad-do-it (set-buffer trace-buffer) (goto-char (point-max)) trace-exit-message (trace-level ad-return-value) (trace-level (1+ trace-level)) (pop-to-buffer trace-buffer) (goto-char (point-max)) (if (= trace-level 1) (insert trace-separator)) (trace-level ad-arg-bindings) (pop-to-buffer trace-buffer) (goto-char (point-max)) (trace-level ad-return-value)] 20]) (defalias 'trace-function-internal #[(function buffer background) "À  † \f #ÆÇ$ˆÈ É\"‡" [ad-add-advice function trace-make-advice buffer trace-buffer background around last ad-activate nil] 6]) (defalias 'trace-is-traced #[(function) "Á\nÃNžAž‡" [trace-advice-name around function ad-advice-info] 4]) #@487 Traces FUNCTION with trace output going to BUFFER. For every call of FUNCTION Lisp-style trace messages that display argument and return values will be inserted into BUFFER. This function generates the trace advice for FUNCTION and activates it together with any other advice there might be!! The trace BUFFER will popup whenever FUNCTION is called. Do not use this to trace functions that switch buffers or do any other display oriented stuff, use `trace-function-background' instead. (defalias 'trace-function #[(function &optional buffer) "À \nÃ#‡" [trace-function-internal function buffer nil] 4 (#$ . 2507) (list (intern (completing-read "Trace function: " obarray (quote fboundp) t)) (read-buffer "Output to buffer: " trace-buffer))]) #@401 Traces FUNCTION with trace output going quietly to BUFFER. For every call of FUNCTION Lisp-style trace messages that display argument and return values will be inserted into BUFFER. This function generates the trace advice for FUNCTION and activates it together with any other advice there might be!! Trace output will quietly go to BUFFER without changing the window or buffer configuration at all. (defalias 'trace-function-background #[(function &optional buffer) "À \nÃ#‡" [trace-function-internal function buffer t] 4 (#$ . 3255) (list (intern (completing-read "Trace function in background: " obarray (quote fboundp) t)) (read-buffer "Output to buffer: " trace-buffer))]) #@243 Untraces FUNCTION and possibly activates all remaining advice. Activation is performed with `ad-update', hence remaining advice will get activated only if the advice of FUNCTION is currently active. If FUNCTION was not traced this is a noop. (defalias 'untrace-function #[(function) "À !… Ã\f#ˆÅ !‡" [trace-is-traced function ad-remove-advice around trace-advice-name ad-update] 4 (#$ . 3940) (list (ad-read-advised-function "Untrace function: " (quote trace-is-traced)))]) #@42 Untraces all currently traced functions. (defalias 'untrace-all #[nil "Á‰ƒ @Ä\n@!Å\n!ˆ A‰„*Á‡" [ad-advised-functions nil function ad-dO-vAr intern untrace-function] 3 (#$ . 4423) nil]) (provide (quote trace))