X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/46908fece96be2ff098547565adaf0ef5a7d7b8f..df12bbc75c274351f3b3a628740e0b3270f08e18:/src/instr/instr_paje_trace.c diff --git a/src/instr/instr_paje_trace.c b/src/instr/instr_paje_trace.c index 02cedbfd35..a9540ca361 100644 --- a/src/instr/instr_paje_trace.c +++ b/src/instr/instr_paje_trace.c @@ -25,6 +25,7 @@ typedef enum { PAJE_SetState, PAJE_PushState, PAJE_PopState, + PAJE_ResetState, PAJE_StartLink, PAJE_EndLink, PAJE_NewEvent @@ -122,6 +123,12 @@ typedef struct s_popState { type_t type; }s_popState_t; +typedef struct s_resetState *resetState_t; +typedef struct s_resetState { + container_t container; + type_t type; +}s_resetState_t; + typedef struct s_startLink *startLink_t; typedef struct s_startLink { container_t container; @@ -211,36 +218,36 @@ void TRACE_paje_create_header(void) fprintf(tracing_file, "\ %%EventDef PajeDefineContainerType %d \n\ %% Alias string \n\ -%% ContainerType string \n\ +%% Type string \n\ %% Name string \n\ %%EndEventDef \n\ %%EventDef PajeDefineVariableType %d \n\ %% Alias string \n\ -%% ContainerType string \n\ +%% Type string \n\ %% Name string \n\ %% Color color \n\ %%EndEventDef \n\ %%EventDef PajeDefineStateType %d \n\ %% Alias string \n\ -%% ContainerType string \n\ +%% Type string \n\ %% Name string \n\ %%EndEventDef \n\ %%EventDef PajeDefineEventType %d \n\ %% Alias string \n\ -%% ContainerType string \n\ +%% Type string \n\ %% Name string \n\ %% Color color \n\ %%EndEventDef \n\ %%EventDef PajeDefineLinkType %d \n\ %% Alias string \n\ -%% ContainerType string \n\ -%% SourceContainerType string \n\ -%% DestContainerType string \n\ +%% Type string \n\ +%% StartContainerType string \n\ +%% EndContainerType string \n\ %% Name string \n\ %%EndEventDef \n\ %%EventDef PajeDefineEntityValue %d \n\ %% Alias string \n\ -%% EntityType string \n\ +%% Type string \n\ %% Name string \n\ %% Color color \n\ %%EndEventDef \n\ @@ -291,12 +298,17 @@ void TRACE_paje_create_header(void) %% Type string \n\ %% Container string \n\ %%EndEventDef\n\ +%%EventDef PajeResetState %d \n\ +%% Time date \n\ +%% Type string \n\ +%% Container string \n\ +%%EndEventDef\n\ %%EventDef PajeStartLink %d \n\ %% Time date \n\ %% Type string \n\ %% Container string \n\ %% Value string \n\ -%% SourceContainer string \n\ +%% StartContainer string \n\ %% Key string \n\ %%EndEventDef\n\ %%EventDef PajeEndLink %d \n\ @@ -304,7 +316,7 @@ void TRACE_paje_create_header(void) %% Type string \n\ %% Container string \n\ %% Value string \n\ -%% DestContainer string \n\ +%% EndContainer string \n\ %% Key string \n\ %%EndEventDef\n\ %%EventDef PajeNewEvent %d \n\ @@ -327,6 +339,7 @@ void TRACE_paje_create_header(void) PAJE_SetState, PAJE_PushState, PAJE_PopState, + PAJE_ResetState, PAJE_StartLink, PAJE_EndLink, PAJE_NewEvent); @@ -341,7 +354,7 @@ static void insert_into_buffer (paje_event_t tbi) return; } XBT_DEBUG("%s: insert event_type=%d, timestamp=%f, buffersize=%lu)", - __FUNCTION__, (int)tbi->event_type, tbi->timestamp, xbt_dynar_length(buffer)); + __FUNCTION__, (int)tbi->event_type, tbi->timestamp, xbt_dynar_length(buffer)); unsigned int i; for (i = xbt_dynar_length(buffer); i > 0; i--) { @@ -572,6 +585,23 @@ static void print_pajePopState(paje_event_t event) } } +static void print_pajeResetState(paje_event_t event) +{ + XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp); + if (event->timestamp == 0){ + fprintf(tracing_file, "%d 0 %s %s\n", + (int)event->event_type, + ((resetState_t)event->data)->type->id, + ((resetState_t)event->data)->container->id); + }else{ + fprintf(tracing_file, "%d %lf %s %s\n", + (int)event->event_type, + event->timestamp, + ((resetState_t)event->data)->type->id, + ((resetState_t)event->data)->container->id); + } +} + static void print_pajeStartLink(paje_event_t event) { XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp); @@ -898,6 +928,23 @@ void new_pajePopState (double timestamp, container_t container, type_t type) insert_into_buffer (event); } + +void new_pajeResetState (double timestamp, container_t container, type_t type) +{ + paje_event_t event = xbt_new0(s_paje_event_t, 1); + event->event_type = PAJE_ResetState; + event->timestamp = timestamp; + event->print = print_pajeResetState; + event->free = free_paje_event; + event->data = xbt_new0(s_resetState_t, 1); + ((resetState_t)(event->data))->type = type; + ((resetState_t)(event->data))->container = container; + + XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp); + + insert_into_buffer (event); +} + void new_pajeStartLink (double timestamp, container_t container, type_t type, container_t sourceContainer, const char *value, const char *key) { paje_event_t event = xbt_new0(s_paje_event_t, 1);