Update of /cvsroot/sbcl/sbcl/src/code
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv19689/src/code
Modified Files:
step.lisp
Log Message:
0.9.15.36: less intrusive step instrumentation
* INVOKE-EFFECTIVE-METHOD was missing a binding for the
effective-method-form, causing potential multiple evaluation and
also creating one source of confusion when step instrumenting CLOS
code, manifesting as:
Asserted type (MOD 536870911) conflicts with derived type
(VALUES (OR FUNCTION SB-PCL::METHOD-CALL SB-PCL::FAST-METHOD-CALL)
&OPTIONAL).
* If the form being instrumented is a call to a known single-valued
function we can instrument it in a way that doesn't kill the
type-inference. This alone is enough to get rid of most warnings
such as above.
* Add rudimentary (B)acktrace command to the built-in stepper.
Index: step.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/code/step.lisp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- step.lisp 14 Jul 2005 16:30:38 -0000 1.2
+++ step.lisp 16 Aug 2006 19:05:46 -0000 1.3
@@ -22,6 +22,7 @@
N: Evaluate the current expression without stepping.
C: Evaluate to finish without stepping.
Q: Abort evaluation.
+ B: Backtrace.
?: Display this message.
")
@@ -46,6 +47,8 @@
(let ((line (read-line *debug-io*)))
(if (plusp (length line))
(case (char-upcase (schar line 0))
+ (#\B
+ (backtrace))
(#\Q
(abort condition))
(#\C
@@ -57,7 +60,7 @@
(#\?
(write-line *step-help* *debug-io*))))))))
-(defvar *stepper-hook* #'single-step
+(defvar *stepper-hook* 'single-step
#+sb-doc "Customization hook for alternative single-steppers.
*STEPPER-HOOK* is bound to NIL prior to calling the bound function
with the STEP-CONDITION as argument.")
|