X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/3086f8693ca7977af2f666bca46f733046b22996..6d6ee3cd05fd81d6eca0b61ad21bf2912dad51b2:/src/mc/mc_global.cpp diff --git a/src/mc/mc_global.cpp b/src/mc/mc_global.cpp index 56169daff7..1b1afcee21 100644 --- a/src/mc/mc_global.cpp +++ b/src/mc/mc_global.cpp @@ -64,8 +64,6 @@ std::vector processes_time; simgrid::mc::State* mc_current_state = nullptr; char mc_replay_mode = false; -mc_stats_t mc_stats = nullptr; - /* Liveness */ namespace simgrid { @@ -140,8 +138,6 @@ void replay(std::list> const& stack) /* Restore the initial state */ simgrid::mc::restore_snapshot(simgrid::mc::initial_global_state->snapshot); - /* At the moment of taking the snapshot the raw heap was set, so restoring - * it will set it back again, we have to unset it to continue */ if (_sg_mc_comms_determinism || _sg_mc_send_determinism) { // int n = xbt_dynar_length(incomplete_communications_pattern); @@ -191,8 +187,8 @@ void replay(std::list> const& stack) } /* Update statistics */ - mc_stats->visited_states++; - mc_stats->executed_transitions++; + mc_model_checker->visited_states++; + mc_model_checker->executed_transitions++; } @@ -210,51 +206,7 @@ void MC_show_deadlock(void) XBT_INFO("Counter-example execution trace:"); for (auto& s : mc_model_checker->getChecker()->getTextualTrace()) XBT_INFO("%s", s.c_str()); - MC_print_statistics(mc_stats); -} - -void MC_print_statistics(mc_stats_t stats) -{ - if(_sg_mc_comms_determinism) { - if (!simgrid::mc::initial_global_state->recv_deterministic && - simgrid::mc::initial_global_state->send_deterministic){ - XBT_INFO("******************************************************"); - XBT_INFO("**** Only-send-deterministic communication pattern ****"); - XBT_INFO("******************************************************"); - XBT_INFO("%s", simgrid::mc::initial_global_state->recv_diff); - }else if(!simgrid::mc::initial_global_state->send_deterministic && - simgrid::mc::initial_global_state->recv_deterministic) { - XBT_INFO("******************************************************"); - XBT_INFO("**** Only-recv-deterministic communication pattern ****"); - XBT_INFO("******************************************************"); - XBT_INFO("%s", simgrid::mc::initial_global_state->send_diff); - } - } - - if (stats->expanded_pairs == 0) { - XBT_INFO("Expanded states = %lu", stats->expanded_states); - XBT_INFO("Visited states = %lu", stats->visited_states); - } else { - XBT_INFO("Expanded pairs = %lu", stats->expanded_pairs); - XBT_INFO("Visited pairs = %lu", stats->visited_pairs); - } - XBT_INFO("Executed transitions = %lu", stats->executed_transitions); - if ((_sg_mc_dot_output_file != nullptr) && (_sg_mc_dot_output_file[0] != '\0')) { - fprintf(dot_output, "}\n"); - fclose(dot_output); - } - if (simgrid::mc::initial_global_state != nullptr - && (_sg_mc_comms_determinism || _sg_mc_send_determinism)) { - XBT_INFO("Send-deterministic : %s", - !simgrid::mc::initial_global_state->send_deterministic ? "No" : "Yes"); - if (_sg_mc_comms_determinism) - XBT_INFO("Recv-deterministic : %s", - !simgrid::mc::initial_global_state->recv_deterministic ? "No" : "Yes"); - } - if (getenv("SIMGRID_MC_SYSTEM_STATISTICS")){ - int ret=system("free"); - if(ret!=0)XBT_WARN("system call did not return 0, but %d",ret); - } + simgrid::mc::session->logState(); } void MC_automaton_load(const char *file) @@ -332,40 +284,3 @@ void MC_process_clock_add(smx_process_t process, double amount) { simgrid::mc::processes_time[process->pid] += amount; } - -#if HAVE_MC -void MC_report_assertion_error(void) -{ - XBT_INFO("**************************"); - XBT_INFO("*** PROPERTY NOT VALID ***"); - XBT_INFO("**************************"); - XBT_INFO("Counter-example execution trace:"); - simgrid::mc::dumpRecordPath(); - for (auto& s : mc_model_checker->getChecker()->getTextualTrace()) - XBT_INFO("%s", s.c_str()); - MC_print_statistics(mc_stats); -} - -void MC_report_crash(int status) -{ - XBT_INFO("**************************"); - XBT_INFO("** CRASH IN THE PROGRAM **"); - XBT_INFO("**************************"); - if (WIFSIGNALED(status)) - XBT_INFO("From signal: %s", strsignal(WTERMSIG(status))); - else if (WIFEXITED(status)) - XBT_INFO("From exit: %i", WEXITSTATUS(status)); - if (WCOREDUMP(status)) - XBT_INFO("A core dump was generated by the system."); - else - XBT_INFO("No core dump was generated by the system."); - XBT_INFO("Counter-example execution trace:"); - simgrid::mc::dumpRecordPath(); - for (auto& s : mc_model_checker->getChecker()->getTextualTrace()) - XBT_INFO("%s", s.c_str()); - MC_print_statistics(mc_stats); - XBT_INFO("Stack trace:"); - mc_model_checker->process().dumpStack(); -} - -#endif