Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: General Tips and Tricks for debugging a search.

Author: Gerd Isenberg

Date: 00:11:35 06/16/05

Go up one level in this thread


On June 15, 2005 at 16:36:54, Eric Oldre wrote:

>
>I was wondering if anyone would like to volunteer any tricks they've
>used to help find certain bugs in their search function.
>
>I think that the ideas of using perft for move generation and
>reversing the board to find bugs in the evaluation have both
>been really useful to me. I was wondering if anyone has used
>techniques similar to these to help find search bugs.
>
>I understand that just because a engine can properly pass these
>and other tests doesn't mean it's free of bugs. But they certainly
>help detect at least some of them.
>
>I'm certain that there must be plenty of bugs in Latista's search
>and I think it's time for me to work on discovering them. If
>you don't have any automated tricks like above. Does anyone
>have any general advise to help me spot some bugs?
>
>Eric Oldre
>
>PS. I have at various spots in my program tried to follow a similar
>model of asserts as in fruit. I'm sure taking some time to
>do this at more parts of my program would help.

What i found usefull while debugging search, is setting a position-breakpoint or
to trigger some boolean to trace all kind of stuff into a logfile. Compute the
hashkey of a position by fen string. If during search of a particular
root-position your incremental updated hashkey equals the passed debug hashkey
do a __debugbreak() (__asm int 3 on x86) to stop the search to inspect all kind
of stuff - or toggle some tracelevel.

If you have static mate detection in your evaluation or huge posititional
values, try to confirm the evaluation by search in a debug version.

Gerd



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.