Procházet zdrojové kódy

adding panic report [bug in this commit]

Nicolas Winkler před 2 roky
rodič
revize
acd1a46b98
2 změnil soubory, kde provedl 9 přidání a 2 odebrání
  1. 8 0
      src/engine.rs
  2. 1 2
      src/evaluate.rs

+ 8 - 0
src/engine.rs

@@ -11,6 +11,7 @@ use hash::{Cache, RepetitionTable};
 
 use std::sync::Arc;
 use std::sync::mpsc::{Receiver, Sender};
+use std::panic;
 
 ///
 /// Message types that are sent from the uci interface to the engine thread.
@@ -95,6 +96,13 @@ impl Engine {
     }
 
     pub fn run(&mut self) {
+        panic::set_hook(Box::new(|panic_info| {
+            if let Some(s) = panic_info.payload().downcast_ref::<&str>() {
+                info!("panic occurred: {s:?}");
+            } else {
+                info!("panic occurred");
+            }
+        }));
         while let Some(msg) = self.dequeue_message() {
             match msg {
                 EngineMsg::SetBoard{ pos, moves } => {

+ 1 - 2
src/evaluate.rs

@@ -173,9 +173,8 @@ fn king_safety(game: &Game, side: Side) -> PosValue {
     let kneighbors = guards.count_ones() as PosValue * 5 - attackers.count_ones() as PosValue * 15;
 
     let enemies = game.get_all_side(!side);
-    let kingrow = indices_from_square(square(king)).1;
 
-    let row_opponents = enemies & (ROW_1 << (kingrow * 8));
+    let row_opponents = enemies & (populate_rows(king));
     let dang_row_opponents = row_opponents & (ROW_1 | ROW_2 | ROW_7 | ROW_8);
     let danger_value = (dang_row_opponents.count_ones() * 50) as PosValue;