X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/673a25c682fbdedbdefbc513160b2710a5b545fb..ab0e3fc9e5aa2ff2df9fc2a7b458cb111eee0c5b:/src/instr/instr_paje.c diff --git a/src/instr/instr_paje.c b/src/instr/instr_paje.c index 098440e148..de8945dba9 100644 --- a/src/instr/instr_paje.c +++ b/src/instr/instr_paje.c @@ -8,6 +8,8 @@ #ifdef HAVE_TRACING +XBT_LOG_NEW_DEFAULT_SUBCATEGORY(instr_paje, instr, "Paje tracing event system"); + static FILE *tracing_file = NULL; static int pajeDefineContainerTypeId = 0; @@ -41,21 +43,28 @@ static int pajeNewEventId = 27; #define TRACE_LINE_SIZE 1000 -void TRACE_paje_start(FILE * file) +void TRACE_paje_start(void) { - tracing_file = file; + char *filename = TRACE_get_filename(); + tracing_file = fopen(filename, "w"); + xbt_assert1 (tracing_file != NULL, "Tracefile %s could not be opened for writing.", filename); + + DEBUG1("Filename %s is open for writing", filename); + + /* output header */ + TRACE_paje_create_header(); } -FILE *TRACE_paje_end(void) +void TRACE_paje_end(void) { - return tracing_file; + fclose(tracing_file); + char *filename = TRACE_get_filename(); + DEBUG1("Filename %s is closed", filename); } - void TRACE_paje_create_header(void) { - if (!TRACE_is_active()) - return; + DEBUG0 ("Define paje header"); fprintf(tracing_file, "\ %%EventDef PajeDefineContainerType %d \n\ %% Alias string \n\ @@ -181,24 +190,39 @@ static void __pajeCreateContainer(char *output, int len, int eventid, const char *type, const char *container, const char *name) { - snprintf(output, len, "%d %lf %s %s %s %s", eventid, time, + if (time == 0){ + snprintf(output, len, "%d 0 %s %s %s %s", eventid, + alias, type, container, name); + }else{ + snprintf(output, len, "%d %lf %s %s %s %s", eventid, time, alias, type, container, name); + } } static void __pajeSetState(char *output, int len, int eventid, double time, const char *entityType, const char *container, const char *value) { - snprintf(output, len, "%d %lf %s %s %s", eventid, time, entityType, + if (time == 0){ + snprintf(output, len, "%d 0 %s %s %s", eventid, entityType, container, value); + }else{ + snprintf(output, len, "%d %lf %s %s %s", eventid, time, entityType, + container, value); + } } static void __pajeSetVariable(char *output, int len, int eventid, double time, const char *entityType, const char *container, const char *value) { - snprintf(output, len, "%d %lf %s %s %s", eventid, time, entityType, + if (time == 0){ + snprintf(output, len, "%d 0 %s %s %s", eventid, entityType, + container, value); + }else{ + snprintf(output, len, "%d %lf %s %s %s", eventid, time, entityType, container, value); + } } static void __pajeStartLink(char *output, int len, int eventid, @@ -206,8 +230,13 @@ static void __pajeStartLink(char *output, int len, int eventid, const char *container, const char *value, const char *sourceContainer, const char *key) { - snprintf(output, len, "%d %lf %s %s %s %s %s", eventid, time, entityType, + if (time == 0){ + snprintf(output, len, "%d 0 %s %s %s %s %s", eventid, entityType, + container, value, sourceContainer, key); + }else{ + snprintf(output, len, "%d %lf %s %s %s %s %s", eventid, time, entityType, container, value, sourceContainer, key); + } } /* internal do the instrumentation module */ @@ -252,8 +281,13 @@ void pajeCreateContainer(double time, const char *alias, const char *type, void pajeDestroyContainer(double time, const char *type, const char *container) { - fprintf(tracing_file, "%d %lf %s %s\n", pajeDestroyContainerId, time, + if (time == 0){ + fprintf(tracing_file, "%d 0 %s %s\n", pajeDestroyContainerId, type, container); + }else{ + fprintf(tracing_file, "%d %lf %s %s\n", pajeDestroyContainerId, time, + type, container); + } } void pajeSetState(double time, const char *entityType, @@ -306,8 +340,13 @@ void pajeEndLink(double time, const char *entityType, const char *container, const char *value, const char *destContainer, const char *key) { - fprintf(tracing_file, "%d %lf %s %s %s %s %s\n", pajeEndLinkId, time, + if (time == 0){ + fprintf(tracing_file, "%d 0 %s %s %s %s %s\n", pajeEndLinkId, + entityType, container, value, destContainer, key); + }else { + fprintf(tracing_file, "%d %lf %s %s %s %s %s\n", pajeEndLinkId, time, entityType, container, value, destContainer, key); + } } void pajeDefineVariableType(const char *alias, const char *containerType, @@ -354,8 +393,13 @@ void pajeSubVariable(double time, const char *entityType, void pajeNewEvent(double time, const char *entityType, const char *container, const char *value) { - fprintf(tracing_file, "%d %lf %s %s %s\n", pajeNewEventId, time, + if (time == 0){ + fprintf(tracing_file, "%d 0 %s %s %s\n", pajeNewEventId, + entityType, container, value); + }else{ + fprintf(tracing_file, "%d %lf %s %s %s\n", pajeNewEventId, time, entityType, container, value); + } } #endif /* HAVE_TRACING */