X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=doc%2Fmanual%2Fdebugger.texinfo;h=45a4b99f3b3f14e8999b221ba2b8047319463dab;hb=9573c214e46195145d4fabf98799b163e356a935;hp=663ad25f968f8ac2077e314af14f9ba180302dc3;hpb=905a0fc4c21ff6c8c752b9436e0616b868f1dfcc;p=sbcl.git diff --git a/doc/manual/debugger.texinfo b/doc/manual/debugger.texinfo index 663ad25..45a4b99 100644 --- a/doc/manual/debugger.texinfo +++ b/doc/manual/debugger.texinfo @@ -26,7 +26,7 @@ the debugger, single-stepper and @code{trace}, and the effect of @menu * Debugger Banner:: -* Debugger Invokation:: +* Debugger Invocation:: @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. -@node Debugger Invokation +@node Debugger Invocation @comment node-name, next, previous, up -@subsection Debugger Invokation +@subsection Debugger Invocation The debugger is invoked when: @@ -850,13 +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. -@item > (max 1 speed space compilation-speed) -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. Fully steppable code take -exponentially longer to compile in some cases, and is significantly -larger and slower; for partially steppable code the speed and space -penalties are signigicantly smaller. +@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 @@ -906,13 +902,20 @@ useful for popping debug command loop levels or aborting to top level, 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 +@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 @@ -947,11 +950,6 @@ Displays all the frames from the current to the bottom. Only shows @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). @@ -1125,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. -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