X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/5471e7257ff1a171b33234d6c08227f34a1ba029..e2003d622b6b961020a60265f2b03b427afaeb4b:/src/simgrid/sg_config.c diff --git a/src/simgrid/sg_config.c b/src/simgrid/sg_config.c index 544de00018..763192e633 100644 --- a/src/simgrid/sg_config.c +++ b/src/simgrid/sg_config.c @@ -21,7 +21,8 @@ #include "smpi/smpi_interface.h" #include "mc/mc.h" #include "mc/mc_record.h" -#include "instr/instr.h" +#include "simgrid/instr.h" +#include "mc/mc_replay.h" XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_config, surf, "About the configuration of simgrid"); @@ -70,10 +71,8 @@ static void sg_config_cmd_line(int *argc, char **argv) "to the command line.\n" "\n" "You can also use --help-models to see the details of all models known by this simulator.\n" -#ifdef HAVE_TRACING "\n" "You can also use --help-tracing to see the details of all tracing options known by this simulator.\n" -#endif "\n" "You can also use --help-logs and --help-log-categories to see the details of logging output.\n" "\n" @@ -96,11 +95,9 @@ static void sg_config_cmd_line(int *argc, char **argv) surf_optimization_mode_description[k].description); printf("Both network and CPU models have 'Lazy' as default optimization level\n\n"); shall_exit = 1; -#ifdef HAVE_TRACING } else if (!strcmp(argv[i], "--help-tracing")) { TRACE_help (1); shall_exit = 1; -#endif } else { argv[j++] = argv[i]; } @@ -653,12 +650,6 @@ void sg_config_init(int *argc, char **argv) xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_sparse_checkpoint, NULL); xbt_cfg_setdefault_boolean(_sg_cfg_set, "model-check/sparse-checkpoint", "no"); - /* do stateful model-checking */ - xbt_cfg_register(&_sg_cfg_set, "model-check/soft-dirty", - "Use sparse per-page snapshots.", - xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_soft_dirty, NULL); - xbt_cfg_setdefault_boolean(_sg_cfg_set, "model-check/soft-dirty", "no"); - /* do liveness model-checking */ xbt_cfg_register(&_sg_cfg_set, "model-check/property", "Specify the name of the file containing the property. It must be the result of the ltl2ba program.", @@ -695,6 +686,12 @@ void sg_config_init(int *argc, char **argv) xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_hash, NULL); xbt_cfg_setdefault_boolean(_sg_cfg_set, "model-check/hash", "no"); + /* Set max depth exploration */ + xbt_cfg_register(&_sg_cfg_set, "model-check/snapshot_fds", + "Whether file descriptors must be snapshoted", + xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_snapshot_fds, NULL); + xbt_cfg_setdefault_boolean(_sg_cfg_set, "model-check/snapshot_fds", "no"); + /* Set max depth exploration */ xbt_cfg_register(&_sg_cfg_set, "model-check/max_depth", "Specify the max depth of exploration (default : 1000)", @@ -712,6 +709,12 @@ void sg_config_init(int *argc, char **argv) "Specify the name of dot file corresponding to graph state", xbt_cfgelm_string, 1, 1, _mc_cfg_cb_dot_output, NULL); xbt_cfg_setdefault_string(_sg_cfg_set, "model-check/dot_output", ""); + + /* Enable/disable non progressive cycles detection with model-checking */ + xbt_cfg_register(&_sg_cfg_set, "model-check/termination", + "Enable/Disable non progressive cycle detection", + xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_termination, NULL); + xbt_cfg_setdefault_boolean(_sg_cfg_set, "model-check/termination", "no"); #endif /* do verbose-exit */ @@ -953,6 +956,11 @@ void sg_config_init(int *argc, char **argv) xbt_cfgelm_string, 0, 1, &_sg_cfg_cb__coll_reduce, NULL); #endif // HAVE_SMPI + xbt_cfg_register(&_sg_cfg_set, "exception/cutpath", + "\"yes\" or \"no\". \"yes\" will cut all path information from call traces, used e.g. in exceptions.", + xbt_cfgelm_boolean, 1, 1, NULL, NULL); + xbt_cfg_setdefault_boolean(_sg_cfg_set, "exception/cutpath", "no"); + xbt_cfg_register(&_sg_cfg_set, "clean_atexit", "\"yes\" or \"no\". \"yes\" enables all the cleanups of SimGrid (XBT,SIMIX,MSG) to be registered with atexit. \"no\" may be useful if your code segfaults when calling the exit function.", xbt_cfgelm_boolean, 1, 1, _sg_cfg_cb_clean_atexit, NULL); @@ -962,7 +970,7 @@ void sg_config_init(int *argc, char **argv) /* retrieves the current directory of the current process */ const char *initial_path = __surf_get_initial_path(); xbt_assert((initial_path), - "__surf_get_initial_path() failed! Can't resolves current Windows directory"); + "__surf_get_initial_path() failed! Can't resolve current Windows directory"); surf_path = xbt_dynar_new(sizeof(char *), NULL); xbt_cfg_setdefault_string(_sg_cfg_set, "path", initial_path);