-/* Copyright (c) 2011-2022. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2011-2023. 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. */
LivenessChecker::LivenessChecker(const std::vector<char*>& args) : Exploration(args) {}
LivenessChecker::~LivenessChecker()
{
- if (property_automaton_ != nullptr)
- xbt_automaton_free(property_automaton_);
+ xbt_automaton_free(property_automaton_);
}
xbt_automaton_t LivenessChecker::property_automaton_ = nullptr;
-void LivenessChecker::automaton_load(const char* file)
+void LivenessChecker::automaton_load(const char* file) const
{
if (property_automaton_ == nullptr)
property_automaton_ = xbt_automaton_new();
const xbt_automaton_transition* transition = xbt_dynar_get_as(dynar, index, xbt_automaton_transition_t);
return transition->dst;
}
-void LivenessChecker::automaton_register_symbol(RemoteProcess& remote_process, const char* name, RemotePtr<int> address)
+void LivenessChecker::automaton_register_symbol(RemoteProcess const& remote_process, const char* name,
+ RemotePtr<int> address)
{
if (property_automaton_ == nullptr)
property_automaton_ = xbt_automaton_new();
XBT_INFO("Counter-example that violates formula:");
for (auto const& s : this->get_textual_trace())
XBT_INFO(" %s", s.c_str());
- XBT_INFO("Path = %s", get_record_trace().to_string().c_str());
+ XBT_INFO("You can debug the problem (and see the whole details) by rerunning out of simgrid-mc with "
+ "--cfg=model-check/replay:'%s'",
+ get_record_trace().to_string().c_str());
log_state();
XBT_INFO("Counter-example depth: %zu", depth);
}