X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/27e8e111e3e06258770115c5a57c8bb177b73a60..2c016c0f838ebe0b67afd7868e8bed3957fb6e51:/src/mc/checker/SafetyChecker.cpp diff --git a/src/mc/checker/SafetyChecker.cpp b/src/mc/checker/SafetyChecker.cpp index 36423ba822..fb87859b12 100644 --- a/src/mc/checker/SafetyChecker.cpp +++ b/src/mc/checker/SafetyChecker.cpp @@ -89,7 +89,11 @@ void SafetyChecker::run() // Backtrack if we reached the maximum depth if (stack_.size() > (std::size_t)_sg_mc_max_depth) { - XBT_WARN("/!\\ Max depth reached ! /!\\ "); + if (reductionMode_ == ReductionMode::dpor) { + XBT_ERROR("/!\\ Max depth reached! THIS WILL PROBABLY BREAK the dpor reduction /!\\"); + XBT_ERROR("/!\\ If bad things happen, disable dpor with --cfg=model-check/reduction:none /!\\"); + } else + XBT_WARN("/!\\ Max depth reached ! /!\\ "); this->backtrack(); continue; } @@ -186,13 +190,12 @@ void SafetyChecker::backtrack() std::unique_ptr state = std::move(stack_.back()); stack_.pop_back(); if (reductionMode_ == ReductionMode::dpor) { - auto call = state->executed_req_.call_; kernel::actor::ActorImpl* issuer = api::get().simcall_get_issuer(&state->executed_req_); for (auto i = stack_.rbegin(); i != stack_.rend(); ++i) { State* prev_state = i->get(); if (state->executed_req_.issuer_ == prev_state->executed_req_.issuer_) { - XBT_DEBUG("Simcall %s and %s with same issuer", SIMIX_simcall_name(call), - SIMIX_simcall_name(prev_state->executed_req_.call_)); + XBT_DEBUG("Simcall %s and %s with same issuer", SIMIX_simcall_name(state->executed_req_), + SIMIX_simcall_name(prev_state->executed_req_)); break; } else if (api::get().simcall_check_dependency(&state->internal_req_, &prev_state->internal_req_)) { if (XBT_LOG_ISENABLED(mc_safety, xbt_log_priority_debug)) { @@ -213,8 +216,8 @@ void SafetyChecker::backtrack() } else { const kernel::actor::ActorImpl* previous_issuer = api::get().simcall_get_issuer(&prev_state->executed_req_); XBT_DEBUG("Simcall %s, process %ld (state %d) and simcall %s, process %ld (state %d) are independent", - SIMIX_simcall_name(call), issuer->get_pid(), state->num_, - SIMIX_simcall_name(prev_state->executed_req_.call_), previous_issuer->get_pid(), prev_state->num_); + SIMIX_simcall_name(state->executed_req_), issuer->get_pid(), state->num_, + SIMIX_simcall_name(prev_state->executed_req_), previous_issuer->get_pid(), prev_state->num_); } } } @@ -291,7 +294,7 @@ SafetyChecker::SafetyChecker(Session* session) : Checker(session) stack_.push_back(std::move(initial_state)); } -Checker* createSafetyChecker(Session* session) +Checker* create_safety_checker(Session* session) { return new SafetyChecker(session); }