gnugo-devel
[Top][All Lists]
Advanced

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

Re: [gnugo-devel] Crash: GNU Go 3.6 pre 2


From: Trevor Morris
Subject: Re: [gnugo-devel] Crash: GNU Go 3.6 pre 2
Date: Sun, 26 Sep 2004 22:42:13 -0400

This solved the problem.  Thanks, Gunnar.  (will you put the patch into
CVS?)

This does raise the issue that's come up before, that the MS VC compiler
doesn't support vairadic macros.  So, the DEBUG define is:
#define DEBUG  (!(debug)) ? (void)0 : (void)DEBUG_func

Therefore, the arguments to DEBUG_func get evaluated in the VC
binary, whereas with variadic macros, the arguments aren't evaluated
because the if statement avoids the gprintf call entirely:
#define DEBUG(level, fmt, args...) \
    do { if ((debug & (level))) gprintf(fmt, ##args); } while (0)

I suggest redefining (not for 3.6) the DEBUG interface, so that it
reads:

DEBUG(DEBUG_LEVEL)(args...)

The define for DEBUG then becomes (for everyone):
#define DEBUG  (!(debug & (level))) ? (void)0 : (void)gprintf

-Trevor

On Fri, 24 Sep 2004 14:57:01 +0200, Gunnar Farnebäck
<address@hidden> wrote:
> Trevor wrote:
> > On the off chance this provides any additional clues to someone,
> > here's the backtrace of the crash around filllib:25
> 
> It does. Try to replace DRAGON2(pos) with DRAGON2(dr) on lines 4563
> and 4584 of owl.c.
> 
> /Gunnar
>




reply via email to

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