Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
replace withsize variant by more generic withextra version, because we will want...
authorAugustin Degomme <degomme@idpann.imag.fr>
Tue, 22 Oct 2013 12:35:02 +0000 (14:35 +0200)
committerAugustin Degomme <degomme@idpann.imag.fr>
Wed, 30 Oct 2013 14:23:49 +0000 (15:23 +0100)
src/instr/instr_paje_trace.c
src/instr/instr_private.h

index 734496d..01680ae 100644 (file)
@@ -96,6 +96,7 @@ typedef struct s_pushState {
   type_t type;
   val_t value;
   int size;
+  xbt_dynar_t extra;
 }s_pushState_t;
 
 typedef struct s_popState *popState_t;
@@ -463,22 +464,35 @@ static void print_pajePushState(paje_event_t event)
     }
   }else{
     if (event->timestamp == 0){
-      fprintf(tracing_file, "%d 0 %s %s %s %d\n",
+      fprintf(tracing_file, "%d 0 %s %s %s ",
           (int)event->event_type,
           ((pushState_t)event->data)->type->id,
           ((pushState_t)event->data)->container->id,
-          ((pushState_t)event->data)->value->id,
-          ((pushState_t)event->data)->size);
+          ((pushState_t)event->data)->value->id);
+
+      char *value = NULL;
+      unsigned int iter = 0;
+      xbt_dynar_foreach( ((pushState_t)event->data)->extra, iter, value) {
+        fprintf(tracing_file, "%s ", value);
+      }
+      fprintf(tracing_file, "\n");
+
     }else{
-      fprintf(tracing_file, "%d %f %s %s %s %d\n",
+      fprintf(tracing_file, "%d %f %s %s %s ",
           (int)event->event_type,
           event->timestamp,
           ((pushState_t)event->data)->type->id,
           ((pushState_t)event->data)->container->id,
-          ((pushState_t)event->data)->value->id,
-          ((pushState_t)event->data)->size);
-    }
+          ((pushState_t)event->data)->value->id);
 
+      char *value = NULL;
+      unsigned int iter = 0;
+      xbt_dynar_foreach( ((pushState_t)event->data)->extra, iter, value) {
+        fprintf(tracing_file, "%s ", value);
+      }
+      fprintf(tracing_file, "\n");
+    }
+   xbt_dynar_free(&((pushState_t)event->data)->extra);
   }
 }
 
@@ -831,7 +845,7 @@ void new_pajeSetState (double timestamp, container_t container, type_t type, val
 }
 
 
-void new_pajePushState (double timestamp, container_t container, type_t type, val_t value)
+void new_pajePushStateWithExtra (double timestamp, container_t container, type_t type, val_t value, xbt_dynar_t extra)
 {
   paje_event_t event = xbt_new0(s_paje_event_t, 1);
   event->event_type = PAJE_PushState;
@@ -842,14 +856,15 @@ void new_pajePushState (double timestamp, container_t container, type_t type, va
   ((pushState_t)(event->data))->type = type;
   ((pushState_t)(event->data))->container = container;
   ((pushState_t)(event->data))->value = value;
-  ((pushState_t)(event->data))->size = -1;
+  ((pushState_t)(event->data))->extra = extra;
 
   XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
 
   insert_into_buffer (event);
 }
 
-void new_pajePushStateWithSize (double timestamp, container_t container, type_t type, val_t value, int size)
+
+void new_pajePushState (double timestamp, container_t container, type_t type, val_t value)
 {
   paje_event_t event = xbt_new0(s_paje_event_t, 1);
   event->event_type = PAJE_PushState;
@@ -860,8 +875,6 @@ void new_pajePushStateWithSize (double timestamp, container_t container, type_t
   ((pushState_t)(event->data))->type = type;
   ((pushState_t)(event->data))->container = container;
   ((pushState_t)(event->data))->value = value;
-  ((pushState_t)(event->data))->size = size;
-
   XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
 
   insert_into_buffer (event);
index 21baa8f..d557de2 100644 (file)
@@ -122,7 +122,7 @@ XBT_PUBLIC(void) new_pajeAddVariable (double timestamp, container_t container, t
 XBT_PUBLIC(void) new_pajeSubVariable (double timestamp, container_t container, type_t type, double value);
 XBT_PUBLIC(void) new_pajeSetState (double timestamp, container_t container, type_t type, val_t value);
 XBT_PUBLIC(void) new_pajePushState (double timestamp, container_t container, type_t type, val_t value);
-XBT_PUBLIC(void) new_pajePushStateWithSize (double timestamp, container_t container, type_t type, val_t value, int size);
+XBT_PUBLIC(void) new_pajePushStateWithExtra (double timestamp, container_t container, type_t type, val_t value, xbt_dynar_t extra);
 XBT_PUBLIC(void) new_pajePopState (double timestamp, container_t container, type_t type);
 XBT_PUBLIC(void) new_pajeResetState (double timestamp, container_t container, type_t type);
 XBT_PUBLIC(void) new_pajeStartLink (double timestamp, container_t container, type_t type, container_t sourceContainer, const char *value, const char *key);