case 'h':
print_usage(argv[0], params);
break;
- case 'n':
- params->nofork = true;
- break;
+ case 'n':
+ params->nofork = true;
+ break;
case 'x':
params->maxexecutions = atoi(optarg);
break;
/** The model_main function contains the main model checking loop. */
static void model_main()
{
- struct model_params params;
-
- param_defaults(¶ms);
- register_plugins();
-
- parse_options(¶ms, main_argc, main_argv);
-
- //Initialize race detector
- initRaceDetector();
-
- snapshot_stack_init();
-
- if (!model)
- model = new ModelChecker();
- model->setParams(params);
- install_trace_analyses(model->get_execution());
-
snapshot_record(0);
model->run();
delete model;
/* Configure output redirection for the model-checker */
redirect_output();
- /* Let's jump in quickly and start running stuff */
- snapshot_system_init(10000, 1024, 1024, 40000, &model_main);
+ //Initialize snapshotting library
+ if (!model)
+ snapshot_system_init(10000, 1024, 1024, 40000);
+
+ struct model_params params;
+
+ param_defaults(¶ms);
+ register_plugins();
+ parse_options(¶ms, main_argc, main_argv);
+
+ //Initialize race detector
+ initRaceDetector();
+
+ snapshot_stack_init();
+
+ if (!model)
+ model = new ModelChecker();
+ model->setParams(params);
+ install_trace_analyses(model->get_execution());
+
+ startExecution(&model_main);
}