X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/290d4e7e276bc06aee8e440f07e6bbd41af6259d..b3a756fa6fe08c4f377ce22d205ef5c1b28bd250:/src/instr/instr_config.cpp diff --git a/src/instr/instr_config.cpp b/src/instr/instr_config.cpp index 72cfabd53b..82b951f1a3 100644 --- a/src/instr/instr_config.cpp +++ b/src/instr/instr_config.cpp @@ -5,8 +5,8 @@ * under the terms of the license (GNU LGPL) which comes with this package. */ #include "src/instr/instr_private.h" -#include "simgrid/sg_config.h" #include "surf/surf.h" +#include XBT_LOG_NEW_CATEGORY(instr, "Logging the behavior of the tracing system (used for Visualization/Analysis of simulations)"); XBT_LOG_NEW_DEFAULT_SUBCATEGORY (instr_config, instr, "Configuration"); @@ -63,6 +63,10 @@ static int trace_precision; static bool trace_configured = false; static bool trace_active = false; +static type_t rootType = nullptr; /* the root type */ + +instr_fmt_type_t instr_fmt_type = instr_fmt_paje; + static void TRACE_getopts() { trace_enabled = xbt_cfg_get_boolean(OPT_TRACING); @@ -87,14 +91,6 @@ static void TRACE_getopts() trace_precision = xbt_cfg_get_int(OPT_TRACING_PRECISION); } -static xbt_dynar_t TRACE_start_functions = nullptr; -void TRACE_add_start_function(void (*func) ()) -{ - if (TRACE_start_functions == nullptr) - TRACE_start_functions = xbt_dynar_new(sizeof(void (*)()), nullptr); - xbt_dynar_push(TRACE_start_functions, &func); -} - int TRACE_start() { if (TRACE_is_configured()) @@ -107,17 +103,14 @@ int TRACE_start() XBT_DEBUG("Tracing starts"); /* init the tracing module to generate the right output */ - /* open internal buffer */ - TRACE_init(); /* open the trace file(s) */ const char* format = xbt_cfg_get_string(OPT_TRACING_FORMAT); XBT_DEBUG("Tracing format %s\n", format); - if(!strcmp(format, "Paje")){ - TRACE_paje_init(); + if (not strcmp(format, "Paje")) { TRACE_paje_start(); - }else if (!strcmp(format, "TI")){ - TRACE_TI_init(); + } else if (not strcmp(format, "TI")) { + instr_fmt_type = instr_fmt_TI; TRACE_TI_start(); }else{ xbt_die("Unknown trace format :%s ", format); @@ -136,31 +129,14 @@ int TRACE_start() user_host_variables = xbt_dict_new_homogeneous(xbt_free_f); user_vm_variables = xbt_dict_new_homogeneous(xbt_free_f); user_link_variables = xbt_dict_new_homogeneous(xbt_free_f); - - if (TRACE_start_functions != nullptr) { - void (*func) (); - unsigned int iter; - xbt_dynar_foreach(TRACE_start_functions, iter, func) { - func(); - } - } } - xbt_dynar_free(&TRACE_start_functions); return 0; } -static xbt_dynar_t TRACE_end_functions = nullptr; -void TRACE_add_end_function(void (*func) (void)) -{ - if (TRACE_end_functions == nullptr) - TRACE_end_functions = xbt_dynar_new(sizeof(void (*)(void)), nullptr); - xbt_dynar_push(TRACE_end_functions, &func); -} - int TRACE_end() { int retval; - if (!trace_active) { + if (not trace_active) { retval = 1; } else { retval = 0; @@ -174,17 +150,9 @@ int TRACE_end() /* destroy all data structures of tracing (and free) */ PJ_container_free_all(); - PJ_type_free_all(); + recursiveDestroyType (PJ_type_get_root()); PJ_container_release(); - PJ_type_release(); - - if (TRACE_end_functions != nullptr) { - void (*func) (void); - unsigned int iter; - xbt_dynar_foreach(TRACE_end_functions, iter, func) { - func(); - } - } + rootType = nullptr; xbt_dict_free(&user_link_variables); xbt_dict_free(&user_host_variables); @@ -195,22 +163,19 @@ int TRACE_end() /* close the trace files */ const char* format = xbt_cfg_get_string(OPT_TRACING_FORMAT); XBT_DEBUG("Tracing format %s\n", format); - if(!strcmp(format, "Paje")){ + if (not strcmp(format, "Paje")) { TRACE_paje_end(); - }else if (!strcmp(format, "TI")){ + } else if (not strcmp(format, "TI")) { TRACE_TI_end(); }else{ xbt_die("Unknown trace format :%s ", format); } - /* close internal buffer */ - TRACE_finalize(); + /* de-activate trace */ trace_active = 0; XBT_DEBUG("Tracing is off"); XBT_DEBUG("Tracing system is shutdown"); } - xbt_dynar_free(&TRACE_start_functions); /* useful when exiting early */ - xbt_dynar_free(&TRACE_end_functions); return retval; } @@ -506,7 +471,7 @@ void TRACE_help (int detailed) print_line (OPT_TRACING_TOPOLOGY, "Register the platform topology as a graph", " This option (enabled by default) can be used to disable the tracing of\n" " the platform topology in the trace file. Sometimes, such task is really\n" - " time consuming, since it must get the route from each host ot other hosts\n" + " time consuming, since it must get the route from each host to other hosts\n" " within the same Autonomous System (AS).", detailed); } @@ -642,7 +607,7 @@ static int previous_trace_state = -1; void instr_pause_tracing () { previous_trace_state = trace_enabled; - if (!TRACE_is_enabled()){ + if (not TRACE_is_enabled()) { XBT_DEBUG ("Tracing is already paused, therefore do nothing."); }else{ XBT_DEBUG ("Tracing is being paused.");