Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
More verbose error and debug messages
authorMartin Quinson <martin.quinson@ens-rennes.fr>
Sat, 1 Jul 2023 16:20:53 +0000 (18:20 +0200)
committerMartin Quinson <martin.quinson@ens-rennes.fr>
Sat, 1 Jul 2023 16:23:32 +0000 (18:23 +0200)
src/kernel/actor/CommObserver.cpp
src/mc/api/State.cpp
src/mc/remote/AppSide.cpp

index bb2d4bf..2c0d55d 100644 (file)
@@ -50,6 +50,7 @@ static void serialize_activity_test(const activity::ActivityImpl* act, std::stri
     stream << ' ' << (uintptr_t)comm->src_buff_ << ' ' << (uintptr_t)comm->dst_buff_ << ' ' << comm->src_buff_size_;
   } else {
     stream << (short)mc::Transition::Type::UNKNOWN;
+    XBT_CRITICAL("Unknown transition in a test any. Bad things may happen");
   }
 }
 static std::string to_string_activity_test(const activity::ActivityImpl* act)
index e1e5b8a..9f6ec0c 100644 (file)
@@ -248,12 +248,12 @@ void State::sprout_tree_from_parent_state()
                                            "deciding when to make subtrees in ODPOR is incorrect");
   xbt_assert((get_transition_in()->aid_ == min_process_node.value()->get_actor()) &&
                  (get_transition_in()->type_ == min_process_node.value()->get_action()->type_),
-             "We tried to make a subtree from a parent state who claimed to have executed `%s` "
-             "but whose wakeup tree indicates it should have executed `%s`. This indicates "
+             "We tried to make a subtree from a parent state who claimed to have executed `%s` on actor %ld"
+             "but whose wakeup tree indicates it should have executed `%s` on actor %ld. This indicates "
              "that exploration is not following ODPOR. Are you sure you're choosing actors "
              "to schedule from the wakeup tree?",
-             get_transition_in()->to_string(false).c_str(),
-             min_process_node.value()->get_action()->to_string(false).c_str());
+             get_transition_in()->to_string(false).c_str(), get_transition_in()->aid_,
+             min_process_node.value()->get_action()->to_string(false).c_str(), min_process_node.value()->get_actor());
   this->wakeup_tree_ = odpor::WakeupTree::make_subtree_rooted_at(min_process_node.value());
 }
 
index 90f221d..5d00307 100644 (file)
@@ -267,6 +267,7 @@ void AppSide::handle_actors_status() const
       strncpy(probe.buffer.data(), str.c_str(), probe.buffer.size() - 1);
       probe.buffer.back() = '\0';
 
+      XBT_DEBUG("send ACTOR_TRANSITION_PROBE(%s) ~> '%s'", actor->get_cname(), str.c_str());
       xbt_assert(channel_.send(probe) == 0, "Could not send ACTOR_TRANSITION_PROBE payload: %s", strerror(errno));
     }
     // NOTE: We do NOT need to reset `times_considered` for each actor's