-(file-comment
- "$Header$")
-
-;;; FIXME: Why, oh why, doesn't the SB-DEBUG package use the SB-DI package?
-;;; That would let us get rid of a whole lot of stupid prefixes..
+;;; FIXME: Why, oh why, doesn't the SB-DEBUG package use the SB-DI
+;;; package? That would let us get rid of a whole lot of stupid
+;;; prefixes..
-;;; a hash table that maps each traced function to the TRACE-INFO. The entry
-;;; for a closure is the shared function-entry object.
+;;; a hash table that maps each traced function to the TRACE-INFO. The
+;;; entry for a closure is the shared function-entry object.
- ;; The following slots represent the forms that we are supposed to evaluate
- ;; on each iteration. Each form is represented by a cons (Form . Function),
- ;; where the Function is the cached result of coercing Form to a function.
- ;; Forms which use the current environment are converted with
- ;; PREPROCESS-FOR-EVAL, which gives us a one-arg function.
- ;; Null environment forms also have one-arg functions, but the argument is
- ;; ignored. NIL means unspecified (the default.)
+ ;; The following slots represent the forms that we are supposed to
+ ;; evaluate on each iteration. Each form is represented by a cons
+ ;; (Form . Function), where the Function is the cached result of
+ ;; coercing Form to a function. Forms which use the current
+ ;; environment are converted with PREPROCESS-FOR-EVAL, which gives
+ ;; us a one-arg function. Null environment forms also have one-arg
+ ;; functions, but the argument is ignored. NIL means unspecified
+ ;; (the default.)
-;;; This is a list of conses (function-end-cookie .
-;;; condition-satisfied), which we use to note distinct dynamic
-;;; entries into functions. When we enter a traced function, we add a
-;;; entry to this list holding the new end-cookie and whether the
-;;; trace condition was satisfied. We must save the trace condition so
-;;; that the after breakpoint knows whether to print. The length of
-;;; this list tells us the indentation to use for printing TRACE
-;;; messages.
+;;; This is a list of conses (function-end-cookie . condition-satisfied),
+;;; which we use to note distinct dynamic entries into functions. When
+;;; we enter a traced function, we add a entry to this list holding
+;;; the new end-cookie and whether the trace condition was satisfied.
+;;; We must save the trace condition so that the after breakpoint
+;;; knows whether to print. The length of this list tells us the
+;;; indentation to use for printing TRACE messages.
;;;
;;; This list also helps us synchronize the TRACE facility dynamically
;;; for detecting non-local flow of control. Whenever execution hits a
;;;
;;; This list also helps us synchronize the TRACE facility dynamically
;;; for detecting non-local flow of control. Whenever execution hits a
-;;; :function-end breakpoint used for TRACE'ing, we look for the
-;;; function-end-cookie at the top of *traced-entries*. If it is not
+;;; :FUNCTION-END breakpoint used for TRACE'ing, we look for the
+;;; FUNCTION-END-COOKIE at the top of *TRACED-ENTRIES*. If it is not
;;; there, we discard any entries that come before our cookie.
;;;
;;; When we trace using encapsulation, we bind this variable and add
;;; there, we discard any entries that come before our cookie.
;;;
;;; When we trace using encapsulation, we bind this variable and add
-;;; This variable is used to discourage infinite recursions when some trace
-;;; action invokes a function that is itself traced. In this case, we quietly
-;;; ignore the inner tracing.
+;;; This variable is used to discourage infinite recursions when some
+;;; trace action invokes a function that is itself traced. In this
+;;; case, we quietly ignore the inner tracing.
-;;; Given a function name, a function or a macro name, return the raw
-;;; definition and some information. "Raw" means that if the result is a
-;;; closure, we strip off the closure and return the bare code. The second
-;;; value is T if the argument was a function name. The third value is one of
-;;; :COMPILED, :COMPILED-CLOSURE, :INTERPRETED, :INTERPRETED-CLOSURE and
-;;; :FUNCALLABLE-INSTANCE.
+;;; Given a function name, a function or a macro name, return the raw
+;;; definition and some information. "Raw" means that if the result is
+;;; a closure, we strip off the closure and return the bare code. The
+;;; second value is T if the argument was a function name. The third
+;;; value is one of :COMPILED, :COMPILED-CLOSURE, :INTERPRETED,
+;;; :INTERPRETED-CLOSURE and :FUNCALLABLE-INSTANCE.
-;;; When a function name is redefined, and we were tracing that name, then
-;;; untrace the old definition and trace the new one.
+;;; When a function name is redefined, and we were tracing that name,
+;;; then untrace the old definition and trace the new one.
-;;; Annotate some forms to evaluate with pre-converted functions. Each form
-;;; is really a cons (exp . function). Loc is the code location to use for
-;;; the lexical environment. If Loc is NIL, evaluate in the null environment.
-;;; If Form is NIL, just return NIL.
+;;; Annotate some forms to evaluate with pre-converted functions. Each
+;;; form is really a cons (exp . function). Loc is the code location
+;;; to use for the lexical environment. If Loc is NIL, evaluate in the
+;;; null environment. If Form is NIL, just return NIL.
-;;; Return a closure that can be used for a function start breakpoint hook
-;;; function and a closure that can be used as the FUNCTION-END-COOKIE
-;;; function. The first communicates the sense of the Condition to the second
-;;; via a closure variable.
+;;; Return a closure that can be used for a function start breakpoint
+;;; hook function and a closure that can be used as the
+;;; FUNCTION-END-COOKIE function. The first communicates the sense of
+;;; the Condition to the second via a closure variable.
;;; This prints a representation of the return values delivered.
;;; First, this checks to see that cookie is at the top of
;;; This prints a representation of the return values delivered.
;;; First, this checks to see that cookie is at the top of
;;; to determine the correct indentation for output. We then check to
;;; see whether the function is still traced and that the condition
;;; succeeded before printing anything.
;;; to determine the correct indentation for output. We then check to
;;; see whether the function is still traced and that the condition
;;; succeeded before printing anything.
-;;; trace info (it was a quoted constant), fill in the functions, and then
-;;; install the breakpoints or encapsulation.
+;;; trace info (it was a quoted constant), fill in the functions, and
+;;; then install the breakpoints or encapsulation.
-;;; If non-null, Definition is the new definition of a function that we are
-;;; automatically retracing.
+;;; If non-null, DEFINITION is the new definition of a function that
+;;; we are automatically retracing.
:function-end-cookie cookie-fun)))
(setf (trace-info-start-breakpoint info) start)
(setf (trace-info-end-breakpoint info) end)
:function-end-cookie cookie-fun)))
(setf (trace-info-start-breakpoint info) start)
(setf (trace-info-end-breakpoint info) end)
- ;; The next two forms must be in the order in which they appear,
- ;; since the start breakpoint must run before the function-end
- ;; breakpoint's start helper (which calls the cookie function.)
- ;; One reason is that cookie function requires that the CONDITIONP
- ;; shared closure variable be initialized.
+ ;; The next two forms must be in the order in which they
+ ;; appear, since the start breakpoint must run before the
+ ;; function-end breakpoint's start helper (which calls the
+ ;; cookie function.) One reason is that cookie function
+ ;; requires that the CONDITIONP shared closure variable be
+ ;; initialized.
-;;; Parse leading trace options off of SPECS, modifying INFO accordingly. The
-;;; remaining portion of the list is returned when we encounter a plausible
-;;; function name.
+;;; Parse leading trace options off of SPECS, modifying INFO
+;;; accordingly. The remaining portion of the list is returned when we
+;;; encounter a plausible function name.
-;;; specified.) If there are no :FUNCTION specs, then don't use a LET. This
-;;; allows TRACE to be used without the full interpreter.
+;;; specified.) If there are no :FUNCTION specs, then don't use a LET.
+;;; This allows TRACE to be used without the full interpreter.