1.0.28.51: better MAKE-ARRAY transforms
[sbcl.git] / doc / manual / debugger.texinfo
index 7e923ed..45a4b99 100644 (file)
@@ -26,7 +26,7 @@ the debugger, single-stepper and @code{trace}, and the effect of
 
 @menu
 * Debugger Banner::             
 
 @menu
 * Debugger Banner::             
-* Debugger Invokation::         
+* Debugger Invocation::         
 @end menu
 
 @node Debugger Banner
 @end menu
 
 @node Debugger Banner
@@ -63,9 +63,9 @@ by entering the corresponding number or name.
 The current frame appears right underneath the restarts, immediately
 followed by the debugger prompt.
 
 The current frame appears right underneath the restarts, immediately
 followed by the debugger prompt.
 
-@node Debugger Invokation
+@node Debugger Invocation
 @comment  node-name,  next,  previous,  up
 @comment  node-name,  next,  previous,  up
-@subsection Debugger Invokation
+@subsection Debugger Invocation
 
 The debugger is invoked when:
 
 
 The debugger is invoked when:
 
@@ -370,8 +370,8 @@ tail-recursively, as in this example:
 @end lisp
 
 Usually the elimination of tail-recursive frames makes debugging more
 @end lisp
 
 Usually the elimination of tail-recursive frames makes debugging more
-pleasant, since theses frames are mostly uninformative.  If there is
-any doubt about how one function called another, it can usually be
+pleasant, since these frames are mostly uninformative.  If there is any
+doubt about how one function called another, it can usually be
 eliminated by finding the source location in the calling frame.
 @xref{Source Location Printing}.
 
 eliminated by finding the source location in the calling frame.
 @xref{Source Location Printing}.
 
@@ -850,9 +850,9 @@ If @code{debug} is greater than both @code{speed} and @code{space},
 the command @command{return} can be used to continue execution by
 returning a value from the current stack frame.
 
 the command @command{return} can be used to continue execution by
 returning a value from the current stack frame.
 
-If @code{debug} is also at least 2, then  the code is @emph{partially
-steppable}. If @code{debug} is 3, the code is @emph{fully steppable}.
-@xref{Single Stepping}, for details.
+@item > (max speed space compilation-speed)
+If @code{debug} is greater than all of @code{speed}, @code{space} and
+@code{compilation-speed} the code will be steppable (@pxref{Single Stepping}).
 
 @end table
 
 
 @end table
 
@@ -902,13 +902,20 @@ useful for popping debug command loop levels or aborting to top level,
 as the case may be.
 @end deffn
 
 as the case may be.
 @end deffn
 
-@deffn {Debugger Command} return @var{value}
+@deffn {Debugger Command} return @var{value} 
 Returns @var{value} from the current stack frame.  This command is
 available when the @code{debug} optimization quality is greater than
 both @code{speed} and @code{space}.  Care must be taken that the value
 is of the same type as SBCL expects the stack frame to return.
 @end deffn
 
 Returns @var{value} from the current stack frame.  This command is
 available when the @code{debug} optimization quality is greater than
 both @code{speed} and @code{space}.  Care must be taken that the value
 is of the same type as SBCL expects the stack frame to return.
 @end deffn
 
+@deffn {Debugger Command} restart-frame
+Restarts execution of the current stack frame. This command is
+available when the @code{debug} optimization quality is greater than
+both @code{speed} and @code{space} and when the frame is for is a global
+function. If the function is redefined in the debugger before the frame
+is restarted, the new function will be used.
+@end deffn
 
 @node  Information Commands
 @comment  node-name,  next,  previous,  up
 
 @node  Information Commands
 @comment  node-name,  next,  previous,  up
@@ -943,11 +950,6 @@ Displays all the frames from the current to the bottom. Only shows
 @code{*debug-print-variable-alist*}.
 @end deffn
 
 @code{*debug-print-variable-alist*}.
 @end deffn
 
-@deffn {Debugger Command} step
-Selects the @code{continue} restart if one exists and starts single stepping.
-@xref{Single Stepping}.
-@end deffn
-
 @c The new instrumentation based single stepper doesn't support
 @c the following commands, but BREAKPOINT at least should be
 @c resurrectable via (TRACE FOO :BREAK T).
 @c The new instrumentation based single stepper doesn't support
 @c the following commands, but BREAKPOINT at least should be
 @c resurrectable via (TRACE FOO :BREAK T).
@@ -1121,23 +1123,32 @@ code, that can be invoked via the @code{step} macro, or from within
 the debugger. @xref{Debugger Policy Control}, for details on enabling
 stepping for compiled code.
 
 the debugger. @xref{Debugger Policy Control}, for details on enabling
 stepping for compiled code.
 
-Compiled code can be unsteppable, partially steppable, or fully steppable.
+The following debugger commands are used for controlling single stepping.
 
 
-@table @strong
+@deffn {Debugger Command} start
+Selects the @code{continue} restart if one exists and starts single stepping.
+None of the other single stepping commands can be used before stepping has
+been started either by using @code{start} or by using the standard 
+@code{step} macro.
+@end deffn
 
 
-@item Unsteppable
-Single stepping is not possible.
+@deffn {Debugger Command} step
+Steps into the current form. Stepping will be resumed when the next
+form that has been compiled with stepper instrumentation is evaluated.
+@end deffn
 
 
-@item Partially steppable
-Single stepping is possible at sequential function call granularity:
-nested function calls cannot be stepped into, and no intermediate
-values are available.
+@deffn {Debugger Command} next
+Steps over the current form. Stepping will be disabled until evaluation of
+the form is complete.
+@end deffn
 
 
-@item Fully steppable
-Single stepping is possible at individual function call argument
-granularity, nested calls can be stepped into, and intermediate values
-are available.
+@deffn {Debugger Command} out
+Steps out of the current frame. Stepping will be disabled until the 
+topmost stack frame that had been stepped into returns.
+@end deffn
 
 
-@end table
+@deffn {Debugger Command} stop
+Stops the single stepper and resumes normal execution.
+@end deffn
 
 @include macro-common-lisp-step.texinfo
 
 @include macro-common-lisp-step.texinfo