gnugo-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [gnugo-devel] Bug in 3.0.0


From: Gunnar Farneback
Subject: Re: [gnugo-devel] Bug in 3.0.0
Date: Tue, 19 Mar 2002 21:36:45 +0100
User-agent: EMH/1.14.1 SEMI/1.14.3 (Ushinoya) FLIM/1.14.2 (Yagi-Nishiguchi) APEL/10.3 Emacs/20.7 (sparc-sun-solaris2.7) (with unibyte mode)

I wrote:
> What program saved it as "stored"? If you have set savebasepath to
> something reasonable in GnugoConfig.h, gnugoclient should have written
> a good sgf file there. Anyhow, the log file you sent includes the
> entire set of gtp commands leading up to the crash, so it should
> suffice to reproduce the crash. However, I don't get a crash with
> 3.0.0, so there's something bad going on here. Therefore we need some
> more input:
> 
> * What platform (hardware, OS, compiler) are you using?
> * Have you modified GNU Go 3.0.0 in any way?
> * Did you use any interesting configure flags when building it?
> * Can you reproduce the crash by saving the commands below in a file
>   crash.gtp and then run "gnugo --quiet --mode gtp < crash.gtp"?
> * If it crashes, would you be able to run it in gdb to get a
>   backtrace? It may sometimes be easier to get a useful backtrace if
>   you first set a breakpoint at abortgo.

Don't bother. I could reproduce the crash when I tried it on Linux
(first attempt was on Solaris). The appended patch against 3.0.0
solves the problem. Still I'd recommend you switch to 3.1.27 instead,
which should be stronger than 3.0.0 but no less stable. (It may be
somewhat slower, though.) Since we are currently preparing for a new
stable release, any additional testing would be most welcome.

/Gunnar

--- utils.c.orig        Fri Aug 24 16:40:45 2001
+++ utils.c     Tue Mar 19 21:13:09 2002
@@ -987,8 +987,13 @@
            increase_depth_values();
            
            if (!issafe) {
-             if (di)
-               attack(m, n, di, dj);
+             if (di) {
+               int ddi, ddj;
+               if (attack(m, n, &ddi, &ddj)) {
+                 *di = ddi;
+                 *dj = ddj;
+               }
+             }
              
              TRACE("After %m worm at %m becomes defendable.\n",
                    i, j, m, n);



reply via email to

[Prev in Thread] Current Thread [Next in Thread]