Computer Chess Club Archives


Search

Terms

Messages

Subject: Reproducing a game (The ultimate dream of the debugger)

Author: Miguel A. Ballicora

Date: 10:00:27 08/02/01


I have an idea for debugging that probably was used before but I want some
opinions about it:

I am thinking about a system to trace what is going in my engine when I see a
weird move during a game. The main problem is that it is extremely difficult
to reproduce the same conditions for search. I have seen once in a while a
very weird move that I cannot reproduce it if I set the position to search.
The obvious reason is because the tables, hash and history bring information
that I lack when I try to reproduce.
Clearing the tables before each move would be (I think) an easy way out. The
engine in this state will be easy to debug but I would be dodging the problem.
In that way I would not see problems caused by the tables. I would be debugging
probably only part of the engine, dodging the most prone to errors!.
Saving the tables is out of the question, I would fill my HD in no time.

What I think I can do is to save how many nodes I searched in any particular
move. When I ran out of time I keep record of the nodes.
When I try to reproduce the game I set the limit of thinking in "nodes", rather
than "time". I should be able to reach exactly the same situation in the search
in each of the moves of the games. Moreover, I should be able to reproduce the
whole thing with the debug version. Maybe I can store a log with all this
information and after the game let the program chew it and see if the
reproduction is exact.

I think that debugging is tedious, boring but extremely important to make the
engine play the way we want. Particularly for chess programs where
the bugs are nasty because sometimes the program does not crash, it just plays
worse "sometimes".

I just came up with this idea this morning, is there anything that I am missing?
suggestions? Is it obvious and everybody already does this?

Regards,
Miguel
PS: I think that this kind of testing could be done also with pondering!
just limiting the pondering to n = nodes.



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.