projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
0.8.0.73:
[sbcl.git]
/
src
/
code
/
debug.lisp
diff --git
a/src/code/debug.lisp
b/src/code/debug.lisp
index
6f26239
..
cf7f9db
100644
(file)
--- a/
src/code/debug.lisp
+++ b/
src/code/debug.lisp
@@
-447,9
+447,10
@@
Other commands:
;;; ANSI specifies that this macro shall exist, even if only as a
;;; trivial placeholder like this.
(defmacro step (form)
;;; ANSI specifies that this macro shall exist, even if only as a
;;; trivial placeholder like this.
(defmacro step (form)
- "a trivial placeholder implementation of the CL:STEP macro required by
- the ANSI spec"
- `(progn
+ "This is a trivial placeholder implementation of the CL:STEP macro required
+ by the ANSI spec, simply expanding to `(LET () ,FORM). A more featureful
+ version would be welcome, we just haven't written it."
+ `(let ()
,form))
\f
;;;; BACKTRACE
,form))
\f
;;;; BACKTRACE
@@
-791,7
+792,8
@@
reset to ~S."
"~&(no restarts: If you didn't do this on purpose, ~
please report it as a bug.)~%"))
(t
"~&(no restarts: If you didn't do this on purpose, ~
please report it as a bug.)~%"))
(t
- (format s "~&restarts:~%")
+ (format s "~&restarts (invokable by number or by ~
+ possibly-abbreviated name):~%")
(let ((count 0)
(names-used '(nil))
(max-name-len 0))
(let ((count 0)
(names-used '(nil))
(max-name-len 0))
@@
-824,7
+826,7
@@
reset to ~S."
(*read-suppress* nil))
(unless (typep *debug-condition* 'step-condition)
(clear-input *debug-io*))
(*read-suppress* nil))
(unless (typep *debug-condition* 'step-condition)
(clear-input *debug-io*))
- (debug-loop)))
+ (funcall *debug-loop-fun*)))
\f
;;;; DEBUG-LOOP
\f
;;;; DEBUG-LOOP
@@
-835,7
+837,7
@@
reset to ~S."
"When set, avoid calling INVOKE-DEBUGGER recursively when errors occur while
executing in the debugger.")
"When set, avoid calling INVOKE-DEBUGGER recursively when errors occur while
executing in the debugger.")
-(defun debug-loop ()
+(defun debug-loop-fun ()
(let* ((*debug-command-level* (1+ *debug-command-level*))
(*real-stack-top* (sb!di:top-frame))
(*stack-top* (or *stack-top-hint* *real-stack-top*))
(let* ((*debug-command-level* (1+ *debug-command-level*))
(*real-stack-top* (sb!di:top-frame))
(*stack-top* (or *stack-top-hint* *real-stack-top*))
@@
-883,6
+885,9
@@
reset to ~S."
(t
(funcall cmd-fun))))))))))))
(t
(funcall cmd-fun))))))))))))
+(defvar *debug-loop-fun* #'debug-loop-fun
+ "a function taking no parameters that starts the low-level debug loop")
+
;;; FIXME: We could probably use INTERACTIVE-EVAL for much of this logic.
(defun debug-eval-print (expr)
(/noshow "entering DEBUG-EVAL-PRINT" expr)
;;; FIXME: We could probably use INTERACTIVE-EVAL for much of this logic.
(defun debug-eval-print (expr)
(/noshow "entering DEBUG-EVAL-PRINT" expr)