*/
void ActorImpl::simcall_handle(int times_considered)
{
- XBT_DEBUG("Handling simcall %p: %s", &simcall_, simcall_.get_cname());
+ XBT_DEBUG("Handling simcall %p: %s(%ld) %s", &simcall_, simcall_.issuer_->get_cname(), simcall_.issuer_->get_pid(),
+ (simcall_.observer_ != nullptr ? simcall_.observer_->to_string().c_str() : simcall_.get_cname()));
if (simcall_.observer_ != nullptr)
simcall_.observer_->prepare(times_considered);
if (wannadie())
State* state = stack_.back().get();
XBT_DEBUG("**************************************************");
- XBT_DEBUG("Exploration depth=%zu (state:%ld; %zu interleaves)", stack_.size(), state->get_num(),
+ XBT_DEBUG("Exploration depth=%zu (state:#%ld; %zu interleaves todo)", stack_.size(), state->get_num(),
state->count_todo());
mc_model_checker->inc_visited_states();
{
auto* engine = kernel::EngineImpl::get_instance();
+ XBT_DEBUG("execute_actors: %lu of %zu to run (%s)", engine->get_actor_to_run_count(), engine->get_actor_count(),
+ (MC_record_replay_is_active() ? "replay active" : "no replay"));
while (engine->has_actors_to_run()) {
engine->run_all_actors();
for (auto const& actor : engine->get_actors_that_ran()) {
* transition for ever.
* This is controlled in the is_enabled() method of the corresponding observers.
*/
-// Called from both MCer and MCed:
bool actor_is_enabled(kernel::actor::ActorImpl* actor)
{
#if SIMGRID_HAVE_MC
simgrid::mc::execute_actors();
for (const simgrid::mc::Transition* transition : transitions_) {
- XBT_DEBUG("Executing %ld$%i", transition->aid_, transition->times_considered_);
-
- // Choose a request:
kernel::actor::ActorImpl* actor = kernel::EngineImpl::get_instance()->get_actor_by_pid(transition->aid_);
xbt_assert(actor != nullptr, "Unexpected actor (id:%ld).", transition->aid_);
const kernel::actor::Simcall* simcall = &(actor->simcall_);
xbt_assert(simgrid::mc::request_is_visible(simcall), "Simcall %s of actor %s is not visible.", simcall->get_cname(),
actor->get_cname());
+
+ XBT_DEBUG("Executing %ld$%i: %s", transition->aid_, transition->times_considered_,
+ simcall->observer_->to_string().c_str());
if (not mc::actor_is_enabled(actor))
simgrid::kernel::EngineImpl::get_instance()->display_all_actor_status();
#include "smpi_host.hpp"
#include "src/kernel/EngineImpl.hpp"
#include "src/kernel/activity/CommImpl.hpp"
+#include "src/mc/mc_replay.hpp"
#include "src/smpi/include/smpi_actor.hpp"
#include "xbt/config.hpp"
#include "xbt/file.hpp"
smpi_init_fortran_types();
if(_smpi_init_sleep > 0)
simgrid::s4u::this_actor::sleep_for(_smpi_init_sleep);
- if (not MC_is_active()) {
+ if (not MC_is_active() && not MC_record_replay_is_active()) {
smpi_deployment_startup_barrier(smpi_process()->get_instance_id());
}
}