Loading package-data-list.lisp-expr +1 −1 Original line number Diff line number Diff line Loading @@ -709,7 +709,7 @@ like *STACK-TOP-HINT* and unsupported stuff like *TRACED-FUN-LIST*." "WITH-TIMEOUT" "TIMEOUT" ;; stepping interface "STEP-CONDITION" "STEP-FORM-CONDITION" "STEP-CONDITION" "STEP-FORM-CONDITION" "STEP-FINISHED-CONDITION" "STEP-VALUES-CONDITION" "STEP-VARIABLE-CONDITION" "STEP-CONDITION-FORM" "STEP-CONDITION-RESULT" "STEP-CONTINUE" "STEP-NEXT" "STEP-INTO" Loading src/code/condition.lisp +9 −0 Original line number Diff line number Diff line Loading @@ -1226,6 +1226,15 @@ single-stepping information after executing a form. STEP-CONDITION-FORM holds the form, and STEP-CONDITION-RESULT holds the values returned by the form as a list. No associated restarts.")) (define-condition step-finished-condition (step-condition) () (:report (lambda (condition stream) (declare (ignore condition)) (format stream "Returning from STEP"))) #!+sb-doc (:documentation "Condition signaled when STEP returns.")) ;;;; restart definitions Loading src/code/step.lisp +21 −7 Original line number Diff line number Diff line Loading @@ -41,6 +41,11 @@ (signal 'step-values-condition :form form :result values) (values-list values)) (defun step-finished () (restart-case (signal 'step-finished-condition) (continue ()))) (defvar *step-help* "The following commands are available at the single stepper's prompt: Loading Loading @@ -76,6 +81,10 @@ stepper's prompt: (let ((*stack-top-hint* (sb-di::find-stepped-frame))) (invoke-debugger condition)))) ;;; In the TTY debugger we're not interested in STEP returning (defmethod single-step ((condition step-finished-condition)) (values)) (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 Loading @@ -84,9 +93,10 @@ with the STEP-CONDITION as argument.") (defun invoke-stepper (condition) (when (and (stepping-enabled-p) *stepper-hook*) (with-stepping-disabled (let ((hook *stepper-hook*) (*stepper-hook* nil)) (funcall hook condition)))) (funcall hook condition))))) (defmacro step (form) #+sb-doc Loading @@ -95,9 +105,13 @@ outside the lexical scope of the form can be stepped into only if the functions in question have been compiled with sufficient DEBUG policy to be at least partially steppable." `(locally (declare (optimize (sb-c:insert-step-conditions 0))) (declare (optimize debug (sb-c:insert-step-conditions 0))) (format t "Single stepping. Type ? for help.~%") (let ((*step-out* :maybe)) (unwind-protect (with-stepping-enabled (multiple-value-prog1 (locally (declare (optimize (sb-c:insert-step-conditions 3))) ,form))))) ,form) (step-finished))))))) version.lisp-expr +1 −1 Original line number Diff line number Diff line Loading @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) "0.9.16.43" "0.9.16.44" Loading
package-data-list.lisp-expr +1 −1 Original line number Diff line number Diff line Loading @@ -709,7 +709,7 @@ like *STACK-TOP-HINT* and unsupported stuff like *TRACED-FUN-LIST*." "WITH-TIMEOUT" "TIMEOUT" ;; stepping interface "STEP-CONDITION" "STEP-FORM-CONDITION" "STEP-CONDITION" "STEP-FORM-CONDITION" "STEP-FINISHED-CONDITION" "STEP-VALUES-CONDITION" "STEP-VARIABLE-CONDITION" "STEP-CONDITION-FORM" "STEP-CONDITION-RESULT" "STEP-CONTINUE" "STEP-NEXT" "STEP-INTO" Loading
src/code/condition.lisp +9 −0 Original line number Diff line number Diff line Loading @@ -1226,6 +1226,15 @@ single-stepping information after executing a form. STEP-CONDITION-FORM holds the form, and STEP-CONDITION-RESULT holds the values returned by the form as a list. No associated restarts.")) (define-condition step-finished-condition (step-condition) () (:report (lambda (condition stream) (declare (ignore condition)) (format stream "Returning from STEP"))) #!+sb-doc (:documentation "Condition signaled when STEP returns.")) ;;;; restart definitions Loading
src/code/step.lisp +21 −7 Original line number Diff line number Diff line Loading @@ -41,6 +41,11 @@ (signal 'step-values-condition :form form :result values) (values-list values)) (defun step-finished () (restart-case (signal 'step-finished-condition) (continue ()))) (defvar *step-help* "The following commands are available at the single stepper's prompt: Loading Loading @@ -76,6 +81,10 @@ stepper's prompt: (let ((*stack-top-hint* (sb-di::find-stepped-frame))) (invoke-debugger condition)))) ;;; In the TTY debugger we're not interested in STEP returning (defmethod single-step ((condition step-finished-condition)) (values)) (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 Loading @@ -84,9 +93,10 @@ with the STEP-CONDITION as argument.") (defun invoke-stepper (condition) (when (and (stepping-enabled-p) *stepper-hook*) (with-stepping-disabled (let ((hook *stepper-hook*) (*stepper-hook* nil)) (funcall hook condition)))) (funcall hook condition))))) (defmacro step (form) #+sb-doc Loading @@ -95,9 +105,13 @@ outside the lexical scope of the form can be stepped into only if the functions in question have been compiled with sufficient DEBUG policy to be at least partially steppable." `(locally (declare (optimize (sb-c:insert-step-conditions 0))) (declare (optimize debug (sb-c:insert-step-conditions 0))) (format t "Single stepping. Type ? for help.~%") (let ((*step-out* :maybe)) (unwind-protect (with-stepping-enabled (multiple-value-prog1 (locally (declare (optimize (sb-c:insert-step-conditions 3))) ,form))))) ,form) (step-finished)))))))
version.lisp-expr +1 −1 Original line number Diff line number Diff line Loading @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) "0.9.16.43" "0.9.16.44"