/** @brief Model checker execution stats */
struct execution_stats {
- int num_total; /**< @brief Total number of executions */
- int num_infeasible; /**< @brief Number of infeasible executions */
- int num_buggy_executions; /** @brief Number of buggy executions */
- int num_complete; /**< @brief Number of feasible, non-buggy, complete executions */
- int num_redundant; /**< @brief Number of redundant, aborted executions */
+ int num_total; /**< @brief Total number of executions */
+ int num_infeasible; /**< @brief Number of infeasible executions */
+ int num_buggy_executions; /** @brief Number of buggy executions */
+ int num_complete; /**< @brief Number of feasible, non-buggy, complete executions */
+ int num_redundant; /**< @brief Number of redundant, aborted executions */
};
/** @brief The central structure for model-checking */
ucontext_t * get_system_context() { return &system_context; }
ModelExecution * get_execution() const { return execution; }
+ ModelHistory * get_history() const { return history; }
int get_execution_number() const { return execution_number; }
model_params params;
void add_trace_analysis(TraceAnalysis *a) { trace_analyses.push_back(a); }
void set_inspect_plugin(TraceAnalysis *a) { inspect_plugin=a; }
+
MEMALLOC
private:
/** Flag indicates whether to restart the model checker. */
Scheduler * const scheduler;
NodeStack * const node_stack;
ModelExecution *execution;
+ ModelHistory *history;
int execution_number;
extern ModelChecker *model;
-#endif/* __MODEL_H__ */
+#endif /* __MODEL_H__ */