From 2dbf4f757910d8c536dd3012cda9b06c162a27cf Mon Sep 17 00:00:00 2001
From: Erwan Jahier <erwan.jahier@univ-grenoble-alpes.fr>
Date: Tue, 12 Oct 2021 15:43:26 +0200
Subject: [PATCH] generated a dot file when something goes wrong

---
 src/sasaMain.ml | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/src/sasaMain.ml b/src/sasaMain.ml
index fd589557..75d56a4d 100644
--- a/src/sasaMain.ml
+++ b/src/sasaMain.ml
@@ -228,7 +228,19 @@ let () =
               (Printexc.to_string error);
             (-1)
         in
-        res
+        if res = n then (
+          Printf.printf  " (%s)\n%!" (StringOf.env_rif s.config st.network);
+          Printf.fprintf newdot "%s\n" (SimuState.to_dot s);
+          Printf.printf "%s and %s have been generated\n" (s.sasarg.topo ^ ".log") newdot_fn;
+          flush_all();
+          close_out newdot;
+          close_out log;
+          failwith(Printf.sprintf
+              "Maximum simulation length reached. Something went wrong or %d is not long enough (use sasa -l to try longer simulation" n
+                  )
+        )
+        else
+          res
       in
       let st = (WorstInit.fchc log run st maxt) in
       Printf.printf  " (%s)\n%!" (StringOf.env_rif st.config st.network);
-- 
GitLab