#include <cinttypes>
-#include <assert.h>
-#include <string.h>
-#include <stdint.h>
+#include <cassert>
+#include <cstddef>
+#include <cstdint>
+#include <cstring>
#include "mc_base.h"
#include "mc_comm_pattern.h"
#include "mc_request.h"
#include "mc_safety.h"
-#include "mc_memory_map.h"
#include "mc_snapshot.h"
#include "mc_liveness.h"
#include "mc_private.h"
if (_sg_mc_comms_determinism)
XBT_INFO("Recv-deterministic : %s", !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);
+ }
}
void MC_automaton_load(const char *file)
unw_get_reg(&c, UNW_X86_64_RIP, &rip);
unw_get_reg(&c, UNW_X86_64_RSP, &rsp);
fprintf(file, " %i: %s (RIP=0x%" PRIx64 " RSP=0x%" PRIx64 ")\n",
- nframe, name, rip, rsp);
+ nframe, name, (std::uint64_t) rip, (std::uint64_t) rsp);
#else
fprintf(file, " %i: %s\n", nframe, name);
#endif
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:");
+ MC_record_dump_path(mc_stack);
+ MC_dump_stack_safety(mc_stack);
+ MC_print_statistics(mc_stats);
+}
+
void MC_invalidate_cache(void)
{
if (mc_model_checker)