-/* Copyright (c) 2020-2021. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2020-2022. The SimGrid Team. All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
#endif
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(Api, mc, "Logging specific to MC Facade APIs ");
+XBT_LOG_EXTERNAL_CATEGORY(mc_global);
using Simcall = simgrid::simix::Simcall;
void Api::mc_check_deadlock() const
{
if (mc_model_checker->checkDeadlock()) {
- MC_show_deadlock();
+ XBT_CINFO(mc_global, "**************************");
+ XBT_CINFO(mc_global, "*** DEADLOCK DETECTED ***");
+ XBT_CINFO(mc_global, "**************************");
+ XBT_CINFO(mc_global, "Counter-example execution trace:");
+ for (auto const& s : mc_model_checker->getChecker()->get_textual_trace())
+ XBT_CINFO(mc_global, " %s", s.c_str());
+ simgrid::mc::dumpRecordPath();
+ simgrid::mc::session_singleton->log_state();
throw DeadlockError();
}
}
xbt_die("Issuer not found");
}
-long Api::simcall_get_actor_id(s_smx_simcall const* req) const
-{
- return simcall_get_issuer(req)->get_pid();
-}
-
RemotePtr<kernel::activity::MailboxImpl> Api::get_mbox_remote_addr(smx_simcall_t const req) const
{
if (req->call_ == Simcall::COMM_ISEND)
THROW_IMPOSSIBLE;
}
-Checker* Api::mc_get_checker() const
-{
- return mc_model_checker->getChecker();
-}
-
void Api::handle_simcall(Transition const& transition) const
{
mc_model_checker->handle_simcall(transition);