From: David L. R. <ra...@cs...> - 2011-02-02 00:15:51
|
If you haven't already tried it, maybe try compiling SBCL from the sources. Perhaps the binary you're using isn't an exact match for the libraries on your system (not that I know more than half a cent about binary distribution). On Tue, Feb 1, 2011 at 6:11 PM, Daniel Weinreb <dl...@it...> wrote: > I tried this and nothing happened. Maybe the version > of SBCL that I'm using behaves differently from > the version you're using... > > Thanks! > > -- Dan > > On 1/31/11 6:04 PM, David L. Rager wrote: >> The following script seems to work, but maybe I'm missing the point. >> One thing I don't know is how to interrupt a thread with a break, >> switch to it (":yield" in ccl), and then be able to debug. I think >> the reason I don't know is that this isn't possible in sbcl? >> >> >> >> >> >> >> oliphaunt-0:~/lisps/sbcl-1.0.45$ sbcl >> (running SBCL from: /v/filer4b/v8q001/lisps/sbcl-1.0.45) >> This is SBCL 1.0.45, an implementation of ANSI Common Lisp. >> More information about SBCL is available at<http://www.sbcl.org/>. >> >> SBCL is free software, provided as is, with absolutely no warranty. >> It is mostly in the public domain; some portions are provided under >> BSD-style licenses. See the CREDITS and COPYING files in the >> distribution for more information. >> * (defun countdown (x) (if (< x 0) x (countdown (1- x)))) >> >> COUNTDOWN >> * (defun foo () (time (countdown 10000000000))) >> >> FOO >> * (sb-thread:make-thread #'foo :name "thread-name") >> >> #<SB-THREAD:THREAD "thread-name" RUNNING {1002C3D311}> >> * (sb-thread:list-all-threads) >> >> (#<SB-THREAD:THREAD "thread-name" RUNNING {1002C3D311}> >> #<SB-THREAD:THREAD "initial thread" RUNNING {1002BC0801}>) >> * (sb-thread:interrupt-thread (car (sb-thread:list-all-threads)) >> #'sb-debug:backtrace) >> >> NIL >> * 0: (SB-DEBUG::MAP-BACKTRACE >> #<CLOSURE (LAMBDA #) {1002C44B59}> >> :START >> 0 >> :COUNT >> 1152921504606846975) >> 1: (BACKTRACE >> 1152921504606846975 >> #<SYNONYM-STREAM :SYMBOL *TERMINAL-IO* {10001E8501}>) >> 2: ((FLET #:WITHOUT-INTERRUPTS-BODY-[WITH-SYSTEM-MUTEX-THUNK]418)) >> 3: ((FLET #:WITHOUT-INTERRUPTS-BODY-[WITHOUT-INTERRUPTS-BODY-[INVOKE-INTERRUPTION]11]18)) >> 4: ((FLET #:WITHOUT-INTERRUPTS-BODY-[INVOKE-INTERRUPTION]11)) >> 5: (SB-SYS:INVOKE-INTERRUPTION >> #<CLOSURE (FLET SB-UNIX::INTERRUPTION) {7FFFF4D19E79}>) >> 6: (SB-SYS:INVOKE-INTERRUPTION >> #<CLOSURE (FLET SB-UNIX::INTERRUPTION) {7FFFF4D19E79}>)[:EXTERNAL] >> 7: ((FLET SB-UNIX::RUN-HANDLER) >> 13 >> #.(SB-SYS:INT-SAP #X7FFFF4D1A2B0) >> #.(SB-SYS:INT-SAP #X7FFFF4D1A180)) >> 8: ((FLET SB-UNIX::RUN-HANDLER) >> 13 >> #.(SB-SYS:INT-SAP #X7FFFF4D1A2B0) >> #.(SB-SYS:INT-SAP #X7FFFF4D1A180))[:OPTIONAL] >> 9: ((FLET SB-UNIX::RUN-HANDLER))[:EXTERNAL] >> 10: ("foreign function: call_into_lisp") >> 11: ("foreign function: funcall3") >> 12: ("foreign function: interrupt_handle_now") >> 13: ("foreign function: #x4144CF") >> 14: ("no debug information for frame") >> 15: (CALL-WITH-TIMING >> #<FUNCTION SB-IMPL::PRINT-TIME> >> #<FUNCTION (LAMBDA #) {1002C2F6D9}>) >> 16: ((FLET #:WITHOUT-INTERRUPTS-BODY-[BLOCK359]364)) >> 17: ((FLET SB-THREAD::WITH-MUTEX-THUNK)) >> 18: ((FLET #:WITHOUT-INTERRUPTS-BODY-[CALL-WITH-MUTEX]300)) >> 19: (SB-THREAD::CALL-WITH-MUTEX >> #<CLOSURE (FLET SB-THREAD::WITH-MUTEX-THUNK) {7FFFF4D1ACB9}> >> #S(SB-THREAD:MUTEX >> :NAME "thread result lock" >> :%OWNER #<SB-THREAD:THREAD "thread-name" RUNNING {1002C3D311}> >> :STATE 1) >> #<SB-THREAD:THREAD "thread-name" RUNNING {1002C3D311}> >> T) >> 20: (SB-THREAD::INITIAL-THREAD-FUNCTION) >> 21: ("foreign function: call_into_lisp") >> 22: ("foreign function: new_thread_trampoline") >> "string to show that we're at the repl" >> >> "string to show that we're at the repl" >> * (sb-thread:list-all-threads) >> >> (#<SB-THREAD:THREAD "thread-name" RUNNING {1002C3D311}> >> #<SB-THREAD:THREAD "initial thread" RUNNING {1002BC0801}>) >> * >> Evaluation took: >> 69.482 seconds of real time >> 69.470000 seconds of total run time (69.460000 user, 0.010000 system) >> 99.98% CPU >> 180,199,897,936 processor cycles >> 264,000 bytes consed >> >> "string to show that we're at the repl" >> "string to show that we're at the repl" >> * (quit) >> oliphaunt-0:~/lisps/sbcl-1.0.45$ uname -a >> Linux oliphaunt-0 2.6.32-28-server #55-Ubuntu SMP Mon Jan 10 23:57:16 >> UTC 2011 x86_64 GNU/Linux >> oliphaunt-0:~/lisps/sbcl-1.0.45$ > > ------------------------------------------------------------------------------ > Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! > Finally, a world-class log management solution at an even better price-free! > Download using promo code Free_Logger_4_Dev2Dev. Offer expires > February 28th, so secure your free ArcSight Logger TODAY! > http://p.sf.net/sfu/arcsight-sfd2d > _______________________________________________ > Sbcl-devel mailing list > Sbc...@li... > https://lists.sourceforge.net/lists/listinfo/sbcl-devel > |