Felix wrote:
> I can indeed reproduce the bug.
That's good. Then we have a reasonable chance to track it down.
> I installed GNU Go together with qgo and cgoban to play against my
> computer using either of those GUIs. This failed each time because
> gnugo became unresponsive and qgo/cgoban was using 100% CPU waiting
> for GNU Go, which as I found out by playing against GNU Go directly,
> crashes each time I play.
>
> I can therefore reproduce the bug I filed, and tell you that (my
> version of) GNU Go crashes each time I play against it.
>
> I haven't done any backtrackes before, but I'm assuming you're talking
> about using strace. Thus, I have attached the output strace gave me
> when running GNU Go the way you specified.
Ah, no, the backtrace we ask for is something different.
Usually you would do like this:
gdb gnugo
run
<play as usual until crash>
bt
and you would get a result that looks something similar to this, which
is what we're after:
#0 0x400bd9e7 in raise () from /lib/tls/libc.so.6
#1 0x400bf31b in abort () from /lib/tls/libc.so.6
#2 0x0808eb88 in abortgo (file=0x80ffdb3 "persistent.c", line=319,
msg=0x80fa427 "stackp == 0", pos=0) at printutils.c:296
#3 0x0808c25e in purge_persistent_cache (cache=Variable "cache" is not
available.) at persistent.c:319
#4 0x0808c7e0 in purge_persistent_caches () at persistent.c:587
#5 0x0806bee3 in examine_position (how_much=3) at genmove.c:113
#6 0x0806c236 in silent_examine_position (how_much=3) at genmove.c:213
#7 0x08050167 in gtp_owl_attack (s=0xbfffb41b "g4\n") at play_gtp.c:1495
#8 0x080580d2 in gtp_main_loop (commands=0x81824f0, gtp_input=0x401c80a0,
gtp_output=0x0,
gtp_dump_commands=0x0) at gtp.c:142
#9 0x0804e6c2 in play_gtp (gtp_input=0x401c80a0, gtp_output=0x401c7f40,
gtp_dump_commands=0x0, gtp_initial_orientation=0) at play_gtp.c:367
#10 0x0804a678 in main (argc=3, argv=0xbffff9b4) at main.c:1411
However, it looks like the Debian binary, at least on i386, is
stripped from debugging symbols, causing the backtrace output to
become useless. This means that you need to first build your own copy
of GNU Go. I don't know if you know how to do that, so I'll give
instructions:
wget ftp://sporadic.stanford.edu/pub/gnugo-3.7.5.tar.gz
tar xvfz gnugo-3.7.5.tar.gz
cd gnugo-3.7.5
./configure
make
Now you should have a binary in interface/gnugo and can continue with
the backtrace instructions, starting with "gdb interface/gnugo".
/Gunnar