- (let ((form (step-condition-form condition)))
- (loop
- (format *debug-io* "; form ~A~%STEP] " form)
- (finish-output *debug-io*)
- (let ((line (read-line *debug-io*)))
- (if (plusp (length line))
- (case (char-upcase (schar line 0))
- (#\Q
- (abort condition))
- (#\C
- (step-continue condition))
- (#\N
- (step-next condition))
- (#\S
- (step-into condition))
- (#\?
- (write-line *step-help* *debug-io*))))))))
+ (let ((form (step-condition-form condition))
+ (args (step-condition-args condition)))
+ (let ((*print-circle* t)
+ (*print-pretty* t)
+ (*print-readably* nil))
+ (format *debug-io*
+ "; Evaluating call:~%~<; ~@; ~A~:>~%~
+ ; ~:[With arguments:~%~<; ~@;~{ ~S~^~%~}~:>~;With unknown arguments~]~%"
+ (list form)
+ (eq args :unknown)
+ (list args)))
+ (finish-output *debug-io*)
+ (let ((*stack-top-hint* (sb-di::find-stepped-frame)))
+ (invoke-debugger condition))))