projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
1.0.48.6: %SIMPLE-EVAL and backtraces
[sbcl.git]
/
src
/
code
/
cold-error.lisp
diff --git
a/src/code/cold-error.lisp
b/src/code/cold-error.lisp
index
96a5670
..
ba9bfae
100644
(file)
--- a/
src/code/cold-error.lisp
+++ b/
src/code/cold-error.lisp
@@
-110,14
+110,16
@@
(infinite-error-protect
(let ((condition (coerce-to-condition datum arguments
(infinite-error-protect
(let ((condition (coerce-to-condition datum arguments
- 'simple-error 'error))
- (sb!debug:*stack-top-hint* (maybe-find-stack-top-hint)))
+ 'simple-error 'error)))
(/show0 "done coercing DATUM to CONDITION")
(/show0 "done coercing DATUM to CONDITION")
+ (/show0 "signalling CONDITION from within ERROR")
(let ((sb!debug:*stack-top-hint* nil))
(let ((sb!debug:*stack-top-hint* nil))
- (/show0 "signalling CONDITION from within ERROR")
(signal condition))
(/show0 "done signalling CONDITION within ERROR")
(signal condition))
(/show0 "done signalling CONDITION within ERROR")
- (invoke-debugger condition))))
+ ;; Finding the stack top hint is pretty expensive, so don't do
+ ;; it until we know we need the debugger.
+ (let ((sb!debug:*stack-top-hint* (maybe-find-stack-top-hint)))
+ (invoke-debugger condition)))))
(defun cerror (continue-string datum &rest arguments)
(infinite-error-protect
(defun cerror (continue-string datum &rest arguments)
(infinite-error-protect
@@
-126,12
+128,12
@@
(let ((condition (coerce-to-condition datum
arguments
'simple-error
(let ((condition (coerce-to-condition datum
arguments
'simple-error
- 'cerror))
- (sb!debug:*stack-top-hint* (maybe-find-stack-top-hint)))
+ 'cerror)))
(with-condition-restarts condition (list (find-restart 'continue))
(let ((sb!debug:*stack-top-hint* nil))
(signal condition))
(with-condition-restarts condition (list (find-restart 'continue))
(let ((sb!debug:*stack-top-hint* nil))
(signal condition))
- (invoke-debugger condition)))))
+ (let ((sb!debug:*stack-top-hint* (maybe-find-stack-top-hint)))
+ (invoke-debugger condition))))))
nil)
;;; like BREAK, but without rebinding *DEBUGGER-HOOK* to NIL, so that
nil)
;;; like BREAK, but without rebinding *DEBUGGER-HOOK* to NIL, so that