In the CVS version as of Wed Sep 23 11:04:18 EST 2009, I get this behaviour: I type CL-USER> (setf *break-on-signals* t) T CL-USER> (just hit <cr> here)
and the world blows up.
This is with current SLIME and SBCL 1.0.30 on an x86_64 GNU/Linux box.
The *inferior-lisp* buffer shows: READ: "(:emacs-rex (swank:listener-eval " ") "COMMON-LISP-USER" :repl-thread 13) " close-connection: invalid number of arguments: 4 ... wait-for-event: (:SLDB-RETURN 2) T ;; Event history end. ;; Backtrace: (0 ((LAMBDA (SWANK-BACKEND::DEBUGGER-LOOP-FN)) #<FUNCTION (LAMBDA #) {10035078F9}>)) (1 (SWANK::SAFE-BACKTRACE)) (2 ((FLET #:LAMBDA1493) #<SB-INT:SIMPLE-PROGRAM-ERROR {1003A0D281}>)) (3 (SIGNAL #<SB-INT:SIMPLE-PROGRAM-ERROR {1003A0D281}>)[:EXTERNAL]) (4 (ERROR SB-INT:SIMPLE-PROGRAM-ERROR)[:EXTERNAL]) (5 (SB-KERNEL::INVALID-ARG-COUNT-ERROR-HANDLER ..)) (6 (SB-KERNEL:INTERNAL-ERROR #.(SB-SYS:INT-SAP #X7FFFF46B7940) #<unavailable argument>)) (7 ("foreign function: #x4222F0")) (8 ("foreign function: #x40D11C")) (9 ("foreign function: #x413B75")) (10 ("foreign function: #x411CEA")) (11 (SWANK::EVAL-FOR-EMACS (SWANK:LISTENER-EVAL "\n") "COMMON-LISP-USER" :REPL-THREAD)[:EXTERNAL]) (12 (SWANK::SLDB-LOOP 1)) (13 ((LAMBDA (SWANK-BACKEND::DEBUGGER-LOOP-FN)) #<FUNCTION (LAMBDA #) {10035FE359}>)) (14 (SWANK::DEBUG-IN-EMACS #<SIMPLE-CONDITION {10035727D1}>)) (15 (SWANK:INVOKE-SLIME-DEBUGGER #<SIMPLE-CONDITION {10035727D1}>)) (16 ((LAMBDA (SWANK-BACKEND::HOOK SWANK-BACKEND::FUN)) #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA #) {10035727F9}>)) (17 (SWANK:SWANK-DEBUGGER-HOOK #<SIMPLE-CONDITION {10035727D1}> #<unavailable argument>)) (18 (INVOKE-DEBUGGER #<SIMPLE-CONDITION {10035727D1}>)) (19 (SB-INT:%BREAK BREAK "~A~%BREAK was entered because of *BREAK-ON-SIGNALS* ~\n (now rebound to NIL)." #<TIMEOUT {10035721E1}>)) (20 (BREAK "~A~%BREAK was entered because of *BREAK-ON-SIGNALS* ~\n (now rebound to NIL)." #<TIMEOUT {10035721E1}>)) (21 (SIGNAL #<TIMEOUT {10035721E1}>)[:EXTERNAL]) (22 (CERROR "Continue" TIMEOUT)[:EXTERNAL]) (23 ((FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK))) (24 ((FLET #:WITHOUT-INTERRUPTS-BODY-[CALL-WITH-RECURSIVE-LOCK]291))) (25 ((FLET #:WITHOUT-INTERRUPTS-BODY-[MAKE-CANCELLABLE-INTERRUPTOR]141))) (26 ((FLET #:WITHOUT-INTERRUPTS-BODY-[WITH-SYSTEM-MUTEX-THUNK]441))) (27 ((FLET #:WITHOUT-INTERRUPTS-BODY-[WITHOUT-INTERRUPTS-BODY-[INVOKE-INTERRUPTION]11]19))) (28 ((FLET #:WITHOUT-INTERRUPTS-BODY-[INVOKE-INTERRUPTION]11))) (29 (SB-SYS:INVOKE-INTERRUPTION #<CLOSURE (FLET SB-UNIX::INTERRUPTION) {7FFFF46B8A89}>)) (30 (SB-SYS:INVOKE-INTERRUPTION #<CLOSURE (FLET SB-UNIX::INTERRUPTION) {7FFFF46B8A89}>)[:EXTERNAL]) (31 ((FLET SB-UNIX::RUN-HANDLER) 13 #.(SB-SYS:INT-SAP #X7FFFF46B8EB0) #.(SB-SYS:INT-SAP #X7FFFF46B8D80))) (32 ((FLET SB-UNIX::RUN-HANDLER) 13 #.(SB-SYS:INT-SAP #X7FFFF46B8EB0) #.(SB-SYS:INT-SAP #X7FFFF46B8D80))[:OPTIONAL]) (33 ((FLET SB-UNIX::RUN-HANDLER))[:EXTERNAL]) (34 ("foreign function: #x4222F0")) (35 ("foreign function: #x40D0E0")) (36 ("foreign function: #x413DAB")) (37 ("foreign function: #x413FBF")) (38 ("bogus stack frame")) (39 ((FLET #:WITHOUT-INTERRUPTS-BODY-[CONDITION-WAIT]183))) (40 (SB-THREAD:CONDITION-WAIT #S(SB-THREAD:WAITQUEUE :NAME NIL :DATA #<SB-THREAD:THREAD "reader-thread" RUNNING {1002FD0171}>) #S(SB-THREAD:MUTEX :NAME NIL :%OWNER NIL :STATE 0))) (41 (SB-THREAD:CONDITION-WAIT #S(SB-THREAD:WAITQUEUE :NAME NIL :DATA #<SB-THREAD:THREAD "reader-thread" RUNNING {1002FD0171}>) #S(SB-THREAD:MUTEX :NAME NIL :%OWNER NIL :STATE 0))[:EXTERNAL]) (42 ((FLET #:FORM-FUN-[WITH-MUTEX-THUNK]2460))) (43 ((FLET SB-THREAD::WITH-MUTEX-THUNK))) (44 ((FLET #:WITHOUT-INTERRUPTS-BODY-[CALL-WITH-MUTEX]267))) (45 (SB-THREAD::CALL-WITH-MUTEX #<CLOSURE (FLET SB-THREAD::WITH-MUTEX-THUNK) {7FFFF46B9839}> #S(SB-THREAD:MUTEX :NAME NIL :%OWNER NIL :STATE 0) #<SB-THREAD:THREAD "control-thread" RUNNING {1002FCFCD1}> T)) (46 ((LAMBDA (SWANK-BACKEND::TEST &OPTIONAL SWANK-BACKEND::TIMEOUT)) #<FUNCTION (LAMBDA #) {100335A569}> NIL)) (47 (SWANK::DISPATCH-LOOP #<SWANK::CONNECTION {1002FCFB61}>)) (48 (SWANK::CONTROL-THREAD #<SWANK::CONNECTION {1002FCFB61}>)) (49 ((FLET #:WITHOUT-INTERRUPTS-BODY-[BLOCK382]387))) (50 ((FLET SB-THREAD::WITH-MUTEX-THUNK))) (51 ((FLET #:WITHOUT-INTERRUPTS-BODY-[CALL-WITH-MUTEX]267))) (52 (SB-THREAD::CALL-WITH-MUTEX ..)) (53 ((LAMBDA ()))) (54 ("foreign function: #x4222F0")) (55 ("foreign function: #x419237")) ;; Connection to Emacs lost. [ ;; condition: invalid number of arguments: 4 ;; type: SB-INT:SIMPLE-PROGRAM-ERROR ;; encoding: NIL style: :SPAWN dedicated: NIL]
and the slime connection is broken.
This makes is essentially impossible to use slime for real programming/debugging.
Cheers,
--ap
Alain Picard Dr.Alain.Picard@gmail.com writes:
In the CVS version as of Wed Sep 23 11:04:18 EST 2009, I get this behaviour: I type CL-USER> (setf *break-on-signals* t) T CL-USER> (just hit <cr> here)
and the world blows up.
This makes is essentially impossible to use slime for real programming/debugging.
While this is not true, you still can set *break-on-signals* to more specific type. You are not expecting slime to not use signals at all, are you?