From: Gábor M. <me...@re...> - 2009-03-14 20:57:39
|
On Sábado 14 Marzo 2009, Sidney Markowitz wrote: > I need some help on following the instructions you gave (excerpted > below, please exclude the top-post format). It appears that by > default sbcl is built with :sb-ldb feature, is there something else > to do to "compile with ldb" as you said? I ran the test in isolation > using the shell command line "sh ./run-tests.sh signals.impure.lisp" > and it did get stuck at the same place, but how do I get it in ldb or > gdb from there? It is just sitting there running using 95% of the cpu > until I interrupt it with a ctrl-C, at which point it produces the > following output: > > http://paste.lisp.org/display/77040 > > and sits there after the final line of output > > unhandled condition in --disable-debugger mode, quitting > > until I type the Enter key, at which point I get a shell prompt. > What next? I'm sorry for the copy pasted instructions. The ldb part does not apply here. The gdb -p <pidof sbcl> and especially the QSHOW part does. Please try to run only the offending test by evaluating this form: (let ((*x0* nil) (*x1* nil) (*x2* nil) (*x3* nil) (*x4* nil)) (declare (special *x0* *x1* *x2* *x3* *x4*)) (loop repeat 10 do (loop repeat 10 do (catch 'again (sb-ext:schedule-timer (sb-ext:make-timer (lambda () (throw 'again nil))) (random 0.1)) (loop (let ((*x0* (cons nil nil)) (*x1* (cons nil nil)) (*x2* (cons nil nil)) (*x3* (cons nil nil)) (*x4* (cons nil nil))) (declare (special *x0* *x1* *x2* *x3* *x4*))))) (when (not (and (null *x0*) (null *x1*) (null *x2*) (null *x3*) (null *x4*))) (format t "~S ~S ~S ~S ~S~%" *x0* *x1* *x2* *x3* *x4*) (assert nil))) (princ '*) (force-output)) (terpri)) > > -- Sidney Markowitz > http://sidney.com > > Gábor Melis wrote, On 15/3/09 4:55 AM: > > Anyway, more information is needed. Compile with ldb and run the > > offending test in isolation. Assuming it still fails: > > > > - include the backtrace from ldb ("ba 1000") > > - include the backtrace from gdb > > gdb -p <process-id> > > (gdb) thread apply all ba > > (gdb) thread apply all call backtrace_from_fp($ebp,1000) > > (substitute $ebp with $rbp or whatever depending on the platform) > > - if the problem is not obvious, please enable QSHOW, QSHOW_SAFE > > and QSHOW_SIGNALS in src/runtime/runtime.h, try to reproduce the > > problem and include the whole output > > > > Cheers, Gabor |