[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: recursive debuggers
- To: cmucl-bugs@cs.cmu.edu
- Subject: Re: recursive debuggers
- From: Miles Bader <miles@cogsci.edinburgh.ac.uk>
- Date: Sat, 11 Apr 92 04:54:33 BST
- Blat: Foop
- In-reply-to: <1755.9204060028@oliphant.cogsci.ed.ac.uk>
- References: <1755.9204060028@oliphant.cogsci.ed.ac.uk>
Miles Bader <miles@edinburgh.cogsci> writes:
> When you turn off the debugger "flush-errors" property, and then get an error
> which puts you into a recursive debugger, the stack-top-hint isn't set
> correctly. This seems to be because error et al. binds *stack-top-hint* to
> NIL [how come?] around the signal which the debugger catches to decide
> whether it's going to flush it or not (and then the debugger is invoked from
> inside the signal handler instead of from error)...
Simply deleting the explicit invoke-debugger from the handler in debug
(letting error do the invoking) seems to fix this...
-Miles
--
Miles Bader -- HCRC, University of Edinburgh -- miles@cogsci.ed.ac.uk
Kodomo-tachi ga raion ni taberaremashita.
*** debug.lisp.~2~ Mon Apr 6 01:18:21 1992
--- debug.lisp Sat Apr 11 04:52:09 1992
***************
*** 382,389 ****
(clear-input *debug-io*)
(princ condition)
(format t "~&Error flushed ...")
! (throw 'debug-loop-catcher nil))
! (invoke-debugger condition))))
;; Must bind level for restart function created by
;; WITH-SIMPLE-RESTART.
(let ((level *debug-command-level*)
--- 382,388 ----
(clear-input *debug-io*)
(princ condition)
(format t "~&Error flushed ...")
! (throw 'debug-loop-catcher nil)))))
;; Must bind level for restart function created by
;; WITH-SIMPLE-RESTART.
(let ((level *debug-command-level*)