Skip to content

Instantly share code, notes, and snippets.

@snicolet
Created September 18, 2019 21:17
Show Gist options
  • Save snicolet/73c0364147412043ac9a86885a5be299 to your computer and use it in GitHub Desktop.
Save snicolet/73c0364147412043ac9a86885a5be299 to your computer and use it in GitHub Desktop.
Example of output:
Example of output for the commands:
./stockfish
setoption name Threads value 2
go infinite
stop
quit
==========================================================
23:11:25 > ./stockfish ~/Programmation/GitHub/Stockfish/src
[DEBUG_HANG] entering main()...
Stockfish 180919 64 POPCNT by T. Romstad, M. Costalba, J. Kiiski, G. Linscott
[DEBUG_HANG] entering ThreadPool::set with requested = 1 and size = 0
[DEBUG_HANG] ThreadPool::set has requested > 0 and is constructing the main thread...
[DEBUG_HANG] Thread 0 is entering idle_loop()...
[DEBUG_HANG] Thread 0 is calling notify_one() in idle_loop(), searching = 0
[DEBUG_HANG] Thread 0 is after notify_one() in idle_loop(), searching = 0
[DEBUG_HANG] Thread 0 is calling cv.wait() in idle_loop(), searching = 0
[DEBUG_HANG] Entering constructor of thread 0, called by ThreadPool::set (case 2)...
[DEBUG_HANG] Constructor of thread 0 is calling wait_for_search_finished()...
[DEBUG_HANG] Thread 0 is entering wait_for_search_finished(), called by constructor
[DEBUG_HANG] Thread 0 is calling cv.wait() in wait_for_search_finished(), searching = 0
[DEBUG_HANG] Thread 0 is after cv.wait() in wait_for_search_finished(), searching = 0
[DEBUG_HANG] Thread 0 is existing wait_for_search_finished(), called by constructor
[DEBUG_HANG] Constructor of thread 0 is after the call of wait_for_search_finished()...
[DEBUG_HANG] Exiting constructor of thread 0, called by ThreadPool::set (case 2)...
[DEBUG_HANG] Thread 0 is entering wait_for_search_finished(), called by TranspositionTable::resize
[DEBUG_HANG] Thread 0 is calling cv.wait() in wait_for_search_finished(), searching = 0
[DEBUG_HANG] Thread 0 is after cv.wait() in wait_for_search_finished(), searching = 0
[DEBUG_HANG] Thread 0 is existing wait_for_search_finished(), called by TranspositionTable::resize
[DEBUG_HANG] exiting ThreadPool::set with requested = 1
[DEBUG_HANG] entering Search::clear...
[DEBUG_HANG] Search::clear is calling wait_for_search_finished() for main thread...
[DEBUG_HANG] Thread 0 is entering wait_for_search_finished(), called by Search::clear
[DEBUG_HANG] Thread 0 is calling cv.wait() in wait_for_search_finished(), searching = 0
[DEBUG_HANG] Thread 0 is after cv.wait() in wait_for_search_finished(), searching = 0
[DEBUG_HANG] Thread 0 is existing wait_for_search_finished(), called by Search::clear
[DEBUG_HANG] Search::clear is after wait_for_search_finished() for main thread...
[DEBUG_HANG] exiting Search::clear...
[DEBUG_HANG] Thread 999999 is entering idle_loop()...
[DEBUG_HANG] Thread 999999 is calling notify_one() in idle_loop(), searching = 0
[DEBUG_HANG] Thread 999999 is after notify_one() in idle_loop(), searching = 0
[DEBUG_HANG] Thread 999999 is calling cv.wait() in idle_loop(), searching = 0
[DEBUG_HANG] Entering constructor of thread 999999, called by UCI::loop...
[DEBUG_HANG] Constructor of thread 999999 is calling wait_for_search_finished()...
[DEBUG_HANG] Thread 999999 is entering wait_for_search_finished(), called by constructor
[DEBUG_HANG] Thread 999999 is calling cv.wait() in wait_for_search_finished(), searching = 0
[DEBUG_HANG] Thread 999999 is after cv.wait() in wait_for_search_finished(), searching = 0
[DEBUG_HANG] Thread 999999 is existing wait_for_search_finished(), called by constructor
[DEBUG_HANG] Constructor of thread 999999 is after the call of wait_for_search_finished()...
[DEBUG_HANG] Exiting constructor of thread 999999, called by UCI::loop...
setoption name Threads value 2
[DEBUG_HANG] entering ThreadPool::set with requested = 2 and size = 1
[DEBUG_HANG] ThreadPool::set has size() >0 and is calling wait_for_search_finished() for the main thread...
[DEBUG_HANG] Thread 0 is entering wait_for_search_finished(), called by ThreadPool::set (case 1)
[DEBUG_HANG] Thread 0 is calling cv.wait() in wait_for_search_finished(), searching = 0
[DEBUG_HANG] Thread 0 is after cv.wait() in wait_for_search_finished(), searching = 0
[DEBUG_HANG] Thread 0 is existing wait_for_search_finished(), called by ThreadPool::set (case 1)
[DEBUG_HANG] ThreadPool::set has size() > 0 and is after the call to wait_for_search_finished() for the main thread...
[DEBUG_HANG] Entering destructor of thread 0...
[DEBUG_HANG] Destructor of thread 0 is raising the exit flag...
[DEBUG_HANG] Thread 0 is calling notify_one() in start_searching(), searching = 1
[DEBUG_HANG] Thread 0 is after notify_one() in start_searching(), searching = 1
[DEBUG_HANG] Thread 0 is after cv.wait() in idle_loop(), searching = 1
[DEBUG_HANG] Thread 0 exiting idle_loop() because exit flag is true...
[DEBUG_HANG] Exiting destructor of thread 0...
[DEBUG_HANG] ThreadPool::set has requested > 0 and is constructing the main thread...
[DEBUG_HANG] Thread 0 is entering idle_loop()...
[DEBUG_HANG] Thread 0 is calling notify_one() in idle_loop(), searching = 0
[DEBUG_HANG] Thread 0 is after notify_one() in idle_loop(), searching = 0
[DEBUG_HANG] Thread 0 is calling cv.wait() in idle_loop(), searching = 0
[DEBUG_HANG] Entering constructor of thread 0, called by ThreadPool::set (case 2)...
[DEBUG_HANG] Constructor of thread 0 is calling wait_for_search_finished()...
[DEBUG_HANG] Thread 0 is entering wait_for_search_finished(), called by constructor
[DEBUG_HANG] Thread 0 is calling cv.wait() in wait_for_search_finished(), searching = 0
[DEBUG_HANG] Thread 0 is after cv.wait() in wait_for_search_finished(), searching = 0
[DEBUG_HANG] Thread 0 is existing wait_for_search_finished(), called by constructor
[DEBUG_HANG] Constructor of thread 0 is after the call of wait_for_search_finished()...
[DEBUG_HANG] Exiting constructor of thread 0, called by ThreadPool::set (case 2)...
[DEBUG_HANG] ThreadPool::set has requested > 0 and is constructing the thread number 1...
[DEBUG_HANG] Thread 1 is entering idle_loop()...
[DEBUG_HANG] Thread 1 is calling notify_one() in idle_loop(), searching = 0
[DEBUG_HANG] Thread 1 is after notify_one() in idle_loop(), searching = 0
[DEBUG_HANG] Thread 1 is calling cv.wait() in idle_loop(), searching = 0
[DEBUG_HANG] Entering constructor of thread 1, called by ThreadPool::set (case 3)...
[DEBUG_HANG] Constructor of thread 1 is calling wait_for_search_finished()...
[DEBUG_HANG] Thread 1 is entering wait_for_search_finished(), called by constructor
[DEBUG_HANG] Thread 1 is calling cv.wait() in wait_for_search_finished(), searching = 0
[DEBUG_HANG] Thread 1 is after cv.wait() in wait_for_search_finished(), searching = 0
[DEBUG_HANG] Thread 1 is existing wait_for_search_finished(), called by constructor
[DEBUG_HANG] Constructor of thread 1 is after the call of wait_for_search_finished()...
[DEBUG_HANG] Exiting constructor of thread 1, called by ThreadPool::set (case 3)...
[DEBUG_HANG] Thread 0 is entering wait_for_search_finished(), called by TranspositionTable::resize
[DEBUG_HANG] Thread 0 is calling cv.wait() in wait_for_search_finished(), searching = 0
[DEBUG_HANG] Thread 0 is after cv.wait() in wait_for_search_finished(), searching = 0
[DEBUG_HANG] Thread 0 is existing wait_for_search_finished(), called by TranspositionTable::resize
[DEBUG_HANG] exiting ThreadPool::set with requested = 2
go infinite
[DEBUG_HANG] ThreadPool::start_thinking is calling wait_for_search_finished() for the main thread...
[DEBUG_HANG] Thread 0 is entering wait_for_search_finished(), called by ThreadPool::start_thinking
[DEBUG_HANG] Thread 0 is calling cv.wait() in wait_for_search_finished(), searching = 0
[DEBUG_HANG] Thread 0 is after cv.wait() in wait_for_search_finished(), searching = 0
[DEBUG_HANG] Thread 0 is existing wait_for_search_finished(), called by ThreadPool::start_thinking
[DEBUG_HANG] ThreadPool::start_thinking is calling wait_for_search_finished() for the main thread...
[DEBUG_HANG] Thread 0 is calling notify_one() in start_searching(), searching = 1
[DEBUG_HANG] Thread 0 is after notify_one() in start_searching(), searching = 1
[DEBUG_HANG] Thread 0 is after cv.wait() in idle_loop(), searching = 1
[DEBUG_HANG] Thread 1 is calling notify_one() in start_searching(), searching = 1
[DEBUG_HANG] Thread 1 is after notify_one() in start_searching(), searching = 1
[DEBUG_HANG] Thread 1 is after cv.wait() in idle_loop(), searching = 1
[DEBUG_HANG] Thread 0 entering Thread::search()...
[DEBUG_HANG] Thread 1 entering Thread::search()...
[DEBUG_HANG] Setting maximum_depth to 246 for thread 0
[DEBUG_HANG] Setting maximum_depth to 246 for thread 1
info depth 1 seldepth 1 multipv 1 score cp 115 nodes 41 nps 41000 tbhits 0 time 1 pv e2e4
info depth 2 seldepth 2 multipv 1 score cp 122 nodes 94 nps 94000 tbhits 0 time 1 pv e2e4 b7b6
info depth 3 seldepth 3 multipv 1 score cp 119 nodes 172 nps 172000 tbhits 0 time 1 pv e2e4 b7b6 f1c4
info depth 4 seldepth 4 multipv 1 score cp 85 nodes 878 nps 439000 tbhits 0 time 2 pv b1c3 e7e6 e2e4 d7d5 e4d5
info depth 5 seldepth 5 multipv 1 score cp 75 nodes 1417 nps 708500 tbhits 0 time 2 pv d2d4 e7e6 e2e4 d7d5
info depth 6 seldepth 6 multipv 1 score cp 71 nodes 2646 nps 1323000 tbhits 0 time 2 pv b1c3 g8f6 e2e4 d7d5 e4d5 f6d5
info depth 7 seldepth 8 multipv 1 score cp 98 nodes 5091 nps 1697000 tbhits 0 time 3 pv e2e4 d7d5 e4d5 g8f6 d1e2 d8d5 b1c3
info depth 8 seldepth 10 multipv 1 score cp 99 nodes 8577 nps 2144250 tbhits 0 time 4 pv e2e4 d7d5 e4d5 c7c6 g1f3 g8f6 c2c4 c6d5 b1c3
info depth 9 seldepth 13 multipv 1 score cp 94 nodes 22977 nps 2553000 tbhits 0 time 9 pv e2e4 e7e6 d2d4 c7c6 b1c3 d7d5 g1f3 d5e4
info depth 10 seldepth 18 multipv 1 score cp 91 nodes 65428 nps 2726166 tbhits 0 time 24 pv e2e4 e7e6 d2d4 c7c6 g1f3 g8e7 b1c3 d7d5 c1g5 h7h6
info depth 11 seldepth 17 multipv 1 score cp 76 nodes 96407 nps 2835500 tbhits 0 time 34 pv e2e4 e7e6 c2c4 d7d5 e4d5 e6d5 d1e2 g8e7 c4d5 d8d5 b1c3 d5e6 d2d4 e6e2 g1e2 c8f5 c1g5
info depth 12 seldepth 19 multipv 1 score cp 93 nodes 137830 nps 2871458 tbhits 0 time 48 pv e2e4 e7e6 d2d4 d7d5 b1c3 d5e4 c3e4 b8c6 c2c3 h7h6 e4g3 g8f6 g1f3
info depth 13 seldepth 21 multipv 1 score cp 79 nodes 313617 nps 2800151 tbhits 0 time 112 pv e2e4 e7e5 b1c3 b8c6 g1f3 g8f6 f1c4 f8c5 e1g1 e8g8 d2d3 d7d6 c1g5 c8g4 c3d5 a7a6 d5f6 g7f6
info depth 14 seldepth 29 multipv 1 score cp 88 nodes 485082 nps 2836736 tbhits 0 time 171 pv e2e4 e7e6 d2d4 d7d5 b1c3 b8c6 e4e5 g8e7 g1f3 h7h6 a2a3 g7g5 f1b5 c8d7
sinfo depth 15 seldepth 26 multipv 1 score cp 77 nodes 875227 nps 2832449 tbhits 0 time 309 pv e2e4 e7e6 d2d4 d7d5 e4d5 e6d5 g1f3 g8f6 d1e2 d8e7 c1f4 b8c6 b1d2 c8e6 e1c1 e8c8 c1b1 c8b8
info depth 16 seldepth 24 multipv 1 score cp 72 nodes 1371248 nps 2856766 tbhits 0 time 480 pv e2e4 e7e6 d2d4 d7d5 e4d5 e6d5 g1f3 g8f6 b1c3 f8d6 f1d3 e8g8 e1g1 c7c6 f3e5 c8e6 d1f3 d6e5 d4e5 f6g4 c1f4
toinfo depth 17 seldepth 28 multipv 1 score cp 60 nodes 2434242 nps 2810903 tbhits 0 time 866 pv e2e4 e7e6 d2d4 d7d5 b1c3 f8b4 e4d5 e6d5 g1f3 g8f6 f1d3 d8e7 c1e3 b4c3 b2c3 f6g4 d1e2 g4e3 e2e3 e7e3 f2e3
pinfo depth 18 seldepth 30 multipv 1 score cp 83 nodes 3650590 nps 2795245 hashfull 951 tbhits 0 time 1306 pv e2e4 e7e6 d2d4 d7d5 e4e5 c7c5 c2c3 b8c6 g1f3 g8e7 f1d3 c5d4 c3d4 e7f5 d3c2 f8b4 b1c3 e8g8 e1g1 a7a6 c1e3 h7h6 c2f5 e6f5
[DEBUG_HANG] UCI thread raises the stop flag because it has received token stop
info depth 19 seldepth 30 multipv 1 score cp 61 nodes 4758592 nps 2837562 hashfull 990 tbhits 0 time 1677 pv e2e4 e7e6
[DEBUG_HANG] Thread 1 exiting Thread::search()...
[DEBUG_HANG] Thread 0 exiting Thread::search()...
[DEBUG_HANG] Thread 1 is calling notify_one() in idle_loop(), searching = 0
[DEBUG_HANG] Thread 0 raising the stop flag in MainThread::search()
[DEBUG_HANG] Thread 1 is after notify_one() in idle_loop(), searching = 0
[DEBUG_HANG] Thread 0 waiting for thread 1 to finish
[DEBUG_HANG] Thread 1 is calling cv.wait() in idle_loop(), searching = 0
[DEBUG_HANG] Thread 1 is entering wait_for_search_finished(), called by MainThread::search
[DEBUG_HANG] Thread 1 is calling cv.wait() in wait_for_search_finished(), searching = 0
[DEBUG_HANG] Thread 1 is after cv.wait() in wait_for_search_finished(), searching = 0
[DEBUG_HANG] Thread 1 is existing wait_for_search_finished(), called by MainThread::search
bestmove e2e4 ponder e7e6
[DEBUG_HANG] Thread 0 is calling notify_one() in idle_loop(), searching = 0
[DEBUG_HANG] Thread 0 is after notify_one() in idle_loop(), searching = 0
[DEBUG_HANG] Thread 0 is calling cv.wait() in idle_loop(), searching = 0
quit
[DEBUG_HANG] UCI thread raises the stop flag because it has received token quit
[DEBUG_HANG] Entering destructor of thread 999999...
[DEBUG_HANG] Destructor of thread 999999 is raising the exit flag...
[DEBUG_HANG] Thread 999999 is calling notify_one() in start_searching(), searching = 1
[DEBUG_HANG] Thread 999999 is after notify_one() in start_searching(), searching = 1
[DEBUG_HANG] Thread 999999 is after cv.wait() in idle_loop(), searching = 1
[DEBUG_HANG] Thread 999999 exiting idle_loop() because exit flag is true...
[DEBUG_HANG] Exiting destructor of thread 999999...
[DEBUG_HANG] entering ThreadPool::set with requested = 0 and size = 2
[DEBUG_HANG] ThreadPool::set has size() >0 and is calling wait_for_search_finished() for the main thread...
[DEBUG_HANG] Thread 0 is entering wait_for_search_finished(), called by ThreadPool::set (case 1)
[DEBUG_HANG] Thread 0 is calling cv.wait() in wait_for_search_finished(), searching = 0
[DEBUG_HANG] Thread 0 is after cv.wait() in wait_for_search_finished(), searching = 0
[DEBUG_HANG] Thread 0 is existing wait_for_search_finished(), called by ThreadPool::set (case 1)
[DEBUG_HANG] ThreadPool::set has size() > 0 and is after the call to wait_for_search_finished() for the main thread...
[DEBUG_HANG] Entering destructor of thread 1...
[DEBUG_HANG] Destructor of thread 1 is raising the exit flag...
[DEBUG_HANG] Thread 1 is calling notify_one() in start_searching(), searching = 1
[DEBUG_HANG] Thread 1 is after notify_one() in start_searching(), searching = 1
[DEBUG_HANG] Thread 1 is after cv.wait() in idle_loop(), searching = 1
[DEBUG_HANG] Thread 1 exiting idle_loop() because exit flag is true...
[DEBUG_HANG] Exiting destructor of thread 1...
[DEBUG_HANG] Entering destructor of thread 0...
[DEBUG_HANG] Destructor of thread 0 is raising the exit flag...
[DEBUG_HANG] Thread 0 is calling notify_one() in start_searching(), searching = 1
[DEBUG_HANG] Thread 0 is after notify_one() in start_searching(), searching = 1
[DEBUG_HANG] Thread 0 is after cv.wait() in idle_loop(), searching = 1
[DEBUG_HANG] Thread 0 exiting idle_loop() because exit flag is true...
[DEBUG_HANG] Exiting destructor of thread 0...
[DEBUG_HANG] exiting ThreadPool::set with requested = 0
[DEBUG_HANG] exiting main()...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment