X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/a497c1d62e1064de5a4d765dc43cb9e71243ba95..9fcf80e84e2d95931695b6886f7147aba259e263:/src/mc/LivenessChecker.hpp diff --git a/src/mc/LivenessChecker.hpp b/src/mc/LivenessChecker.hpp index 918c855ded..de9458b280 100644 --- a/src/mc/LivenessChecker.hpp +++ b/src/mc/LivenessChecker.hpp @@ -30,7 +30,7 @@ extern XBT_PRIVATE xbt_automaton_t property_automaton; struct XBT_PRIVATE Pair { int num = 0; int search_cycle = 0; - mc_state_t graph_state = nullptr; /* System state included */ + simgrid::mc::State* graph_state = nullptr; /* System state included */ xbt_automaton_state_t automaton_state = nullptr; simgrid::xbt::unique_ptr atomic_propositions; int requests = 0; @@ -49,7 +49,7 @@ struct XBT_PRIVATE VisitedPair { int num = 0; int other_num = 0; /* Dot output for */ int acceptance_pair = 0; - mc_state_t graph_state = nullptr; /* System state included */ + simgrid::mc::State* graph_state = nullptr; /* System state included */ xbt_automaton_state_t automaton_state = nullptr; simgrid::xbt::unique_ptr atomic_propositions; size_t heap_bytes_used = 0; @@ -57,7 +57,7 @@ struct XBT_PRIVATE VisitedPair { int acceptance_removed = 0; int visited_removed = 0; - VisitedPair(int pair_num, xbt_automaton_state_t automaton_state, xbt_dynar_t atomic_propositions, mc_state_t graph_state); + VisitedPair(int pair_num, xbt_automaton_state_t automaton_state, xbt_dynar_t atomic_propositions, simgrid::mc::State* graph_state); ~VisitedPair(); }; @@ -66,18 +66,21 @@ public: LivenessChecker(Session& session); ~LivenessChecker(); int run() override; + RecordTrace getRecordTrace() override; + std::vector getTextualTrace() override; private: int main(); void prepare(); int compare(simgrid::mc::VisitedPair* state1, simgrid::mc::VisitedPair* state2); - void dumpStack(xbt_fifo_t stack); - void showStack(xbt_fifo_t stack); simgrid::xbt::unique_ptr getPropositionValues(); simgrid::mc::VisitedPair* insertAcceptancePair(simgrid::mc::Pair* pair); int insertVisitedPair(simgrid::mc::VisitedPair* visited_pair, simgrid::mc::Pair* pair); void showAcceptanceCycle(std::size_t depth); void replay(xbt_fifo_t stack); void removeAcceptancePair(int pair_num); +public: // (non-static wannabe) fields + static xbt_dynar_t acceptance_pairs; + static xbt_fifo_t liveness_stack; }; }