Changes

Jump to: navigation, search

Debugging

510 bytes added, 19:10, 31 August 2020
no edit summary
'''[[Main Page|Home]] * [[Programming]] * Debugging'''
[[FILE:Max_und_moritz-05-12.gifjpg|border|right|thumb|link=http://www.wilhelm-busch-seiten.de/werke/maxundmoritz/streich5.html
| Hin und her und rundherum<br/>Kriecht es, fliegt es mit Gebrumm <ref>[https://en.wikipedia.org/wiki/Wilhelm_Busch Wilhelm-Busch], [http://www.wilhelm-busch-seiten.de/werke/maxundmoritz/streich5.html Max und Moritz - Fünfter Streich] from [http://www.wilhelm-busch-seiten.de/index.html Wilhelm-Busch Seiten von Jochen Schöpflin] (German)</ref> ]]
* Implement an [[MTD(f)]] search, even if you intend to use [[Principal Variation Search|PVS]]. MTD(f) is great for debugging the hash table; all sorts of obscure bugs which are very tricky to find in PVS or other conventional searches suddenly become easy to spot.
* Whenever you add some non-trivial new function to your program, try to write two versions: One which is very slow and stupid, but almost certainly correct, and one which is highly optimized. Verify on a huge number of positions that they give the same results. Remove the slow version only when you feel 100% sure that the fast version is correct.
* Always make [[Color Flipping#Debugging|symmetry tests]] when you add a new term to your [[Evaluation functionFunction|evaluation function]] .
* Run through a simple tactical test like [[Win at Chess|WAC]] at 5 seconds/move every time you change something important in your search. Don't try to optimize the results, but just make sure that the score doesn't suddenly drop dramatically.
* Check the quality of your [[Move Ordering|move ordering]] by measuring how often a [[Beta-Cutoff|beta cutoff]] occurs on the first move, and the frequencies with which the 1st, 2nd, 3rd, ... move turns out to be best at [[Node Types#PV|PV nodes]].
* [[InBetween]]
* [[Logging]]
* [[Perft]]
* [[Fidelity Electronics#SpracklensAppleICE|Spracklens debugging with Apple II ICE]]
* [http://www.talkchess.com/forum/viewtopic.php?t=55578 OT: Finding the Line of the Assert Fail?] by [[Steve Maughan]], [[CCC]], March 07, 2015 » [[Maverick]]
* [http://www.talkchess.com/forum/viewtopic.php?t=59046 Best way to debug perft?] by Meni Rosenfeld, [[CCC]], January 25, 2016 » [[Perft]]
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=60912 Best way to debug search speed?] by [[Vincent Tang]], [[CCC]], July 23, 2016
* [http://www.talkchess.com/forum/viewtopic.php?t=61551 Help with Debugging My Chess Engine] by Pranav Deshpande, [[CCC]], September 28, 2016
* [http://www.talkchess.com/forum/viewtopic.php?t=61565 Help with Debugging My Chess Engine - 2] by Pranav Deshpande, [[CCC]], September 30, 2016
* [http://www.talkchess.com/forum/viewtopic.php?t=66124 How do I debug cutechess-cli engine input/output?] by [[Daniel Dugovic]], [[CCC]], December 25, 2017 » [[Cutechess-cli]]
* [http://www.talkchess.com/forum/viewtopic.php?t=66366 Debugging UCI engine] by Cadel Watson, [[CCC]], January 19, 2018 » [[InBetween]], [[UCI]]
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=67599 Debugging a transposition table] by [[Vincent Tang]], [[CCC]], May 29, 2018 » [[Transposition Table]], [[Lasker-Reichhelm Position]]
==2020 ...==
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=74931 Engine Crash Detective Story] by [[Erik Madsen]], [[CCC]], August 29, 2020 » [[MadChess]]
=External Links=

Navigation menu