Hi all,
The "B" (sldb-break-with-default-debugger) option in sldb doesn't work with LispWorks on Windows2000. It does work with ACL and CLISP on Windows2000. To demonstrate:
#1: Create and run a function that causes an error:
CL-USER> (defun test-sldb () (/ 42 0)) TEST-SLDB CL-USER> (test-sldb)
#2: In the resulting sldb buffer, press "B"
Division-by-zero caused by / of (42 0). [Condition of type DIVISION-BY-ZERO]
Restarts: 0: [VALUE] Return a value to use. 1: [NEW-ARGS] Supply new arguments to use. 2: [ABORT] Abort handling SLIME request. 3: [ABORT] Quit process.
Backtrace: 0: CONDITIONS::CONDITIONS-ERROR (:INVISIBLEP T DIVISION-BY-ZERO (:OPERATION / :OPERANDS (42 0))) 1: SYSTEM::DIVISION-BY-ZERO-ERROR (/ 42 0) 2: / (NIL NIL NIL) 3: TEST-SLDB NIL
#3: The same sldb error will be displayed again. Press "B" a second time. The following error is displayed in the sldb buffer:
No applicable methods for #<STANDARD-GENERIC-FUNCTION ENVIRONMENT-INTERNALS:ENVIRONMENT-DISPLAY-DEBUGGER 207B54B2> with args (#<ENVIRONMENT:TTY-ENVIRONMENT 207B456C>) [Condition of type SIMPLE-ERROR]
Restarts: 0: [CONTINUE] Call #<STANDARD-GENERIC-FUNCTION ENVIRONMENT-INTERNALS:ENVIRONMENT-DISPLAY-DEBUGGER 207B54B2> again 1: [VALUE] Return a value to use. 2: [NEW-ARGS] Supply new arguments to use. 3: [ABORT] Abort handling SLIME request. 4: [ABORT] Quit process.
Backtrace: 0: CONDITIONS::CONDITIONS-ERROR (:INVISIBLEP T "No applicable methods for ~S with args ~S" (#<STANDARD-GENERIC-FUNCTION ENVIRONMENT-INTERNALS:ENVIRONMENT-DISPLAY-DEBUGGER 207B54B2> (#<ENVIRONMENT:TTY-ENVIRONMENT 207B456C>))) 1: CERROR ("Call ~S again" "No applicable methods for ~S with args ~S" NIL (#<STANDARD-GENERIC-FUNCTION ENVIRONMENT-INTERNALS:ENVIRONMENT-DISPLAY-DEBUGGER 207B54B2> (#<ENVIRONMENT:TTY-ENVIRONMENT 207B456C>))) 2: (METHOD NO-APPLICABLE-METHOD (T)) (#<STANDARD-GENERIC-FUNCTION ENVIRONMENT-INTERNALS:ENVIRONMENT-DISPLAY-DEBUGGER 207B54B2> NIL (#<ENVIRONMENT:TTY-ENVIRONMENT 207B456C>)) 3: CLOS::CACHE-MISS-FUNCTION (:INVISIBLEP T NIL (#<ENVIRONMENT:TTY-ENVIRONMENT 207B456C>)) 4: DBG::DEBUG2 (#<DIVISION-BY-ZERO 2069DFC4> NIL NIL) 5: DBG::DEBUG1 (NIL #<DIVISION-BY-ZERO 2069DFC4> NIL NIL) 6: INVOKE-DEBUGGER (NIL (#<DIVISION-BY-ZERO 2069DFC4>)) 7: CONDITIONS::CONDITIONS-ERROR (:INVISIBLEP T DIVISION-BY-ZERO (:OPERATION / :OPERANDS (42 0))) 8: SYSTEM::DIVISION-BY-ZERO-ERROR (/ 42 0) 9: / (NIL NIL NIL) 10: TEST-SLDB NIL
I'm not sure if this used to work properly in LW or not. This is tested with the latest cvs SLIME.
- Bill