-}
-
-static char** argvdup(int argc, char** argv)
-{
- char** argv_copy = xbt_new(char*, argc+1);
- std::memcpy(argv_copy, argv, sizeof(char*) * argc);
- argv_copy[argc] = NULL;
- return argv_copy;
-}
-
-int main(int argc, char** argv)
-{
- _sg_do_model_check = 1;
-
- // We need to keep the original parameters in order to pass them to the
- // model-checked process:
- int argc_copy = argc;
- char** argv_copy = argvdup(argc, argv);
- xbt_log_init(&argc_copy, argv_copy);
- sg_config_init(&argc_copy, argv_copy);
-
- if (argc < 2)
- xbt_die("Missing arguments.\n");
-
- // Create a AF_LOCAL socketpair:
- int res;
-
- int sockets[2];
- res = socketpair(AF_LOCAL, SOCK_DGRAM | SOCK_CLOEXEC, 0, sockets);
- if (res == -1) {
- perror("simgrid-mc");
- return SIMGRID_MC_EXIT_ERROR;
- }
-
- XBT_DEBUG("Created socketpair");
-
- pid_t pid = fork();
- if (pid < 0) {
- perror("simgrid-mc");