projects
/
model-checker.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
params: add multi-level verbosity
[model-checker.git]
/
model.cc
diff --git
a/model.cc
b/model.cc
index 8e94561531ca063ccbd23bec2bf51d778530a95d..466bf613a905ece97aaba98c506e1bf9234109e7 100644
(file)
--- a/
model.cc
+++ b/
model.cc
@@
-24,7
+24,7
@@
ModelChecker::ModelChecker(struct model_params params) :
params(params),
scheduler(new Scheduler()),
node_stack(new NodeStack()),
params(params),
scheduler(new Scheduler()),
node_stack(new NodeStack()),
- execution(new ModelExecution(this, ¶ms, scheduler, node_stack)),
+ execution(new ModelExecution(this, &
this->
params, scheduler, node_stack)),
execution_number(1),
diverge(NULL),
earliest_diverge(NULL),
execution_number(1),
diverge(NULL),
earliest_diverge(NULL),
@@
-36,8
+36,6
@@
ModelChecker::ModelChecker(struct model_params params) :
ModelChecker::~ModelChecker()
{
delete node_stack;
ModelChecker::~ModelChecker()
{
delete node_stack;
- for (unsigned int i = 0; i < trace_analyses.size(); i++)
- delete trace_analyses[i];
delete scheduler;
}
delete scheduler;
}
@@
-256,7
+254,7
@@
void ModelChecker::print_execution(bool printbugs) const
{
print_program_output();
{
print_program_output();
- if (params.verbose) {
+ if (params.verbose
>= 2
) {
model_print("Earliest divergence point since last feasible execution:\n");
if (earliest_diverge)
earliest_diverge->print();
model_print("Earliest divergence point since last feasible execution:\n");
if (earliest_diverge)
earliest_diverge->print();
@@
-444,7
+442,7
@@
void ModelChecker::run()
* thread which just took a step--plus the first step
* for any newly-created thread
*/
* thread which just took a step--plus the first step
* for any newly-created thread
*/
- for (unsigned int i = 0; i <
execution->
get_num_threads(); i++) {
+ for (unsigned int i = 0; i < get_num_threads(); i++) {
thread_id_t tid = int_to_id(i);
Thread *thr = get_thread(tid);
if (!thr->is_model_thread() && !thr->is_complete() && !thr->get_pending()) {
thread_id_t tid = int_to_id(i);
Thread *thr = get_thread(tid);
if (!thr->is_model_thread() && !thr->is_complete() && !thr->get_pending()) {
@@
-485,4
+483,8
@@
void ModelChecker::run()
model_print("******* Model-checking complete: *******\n");
print_stats();
model_print("******* Model-checking complete: *******\n");
print_stats();
+
+ /* Have the trace analyses dump their output. */
+ for (unsigned int i = 0; i < trace_analyses.size(); i++)
+ trace_analyses[i]->finish();
}
}