Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
model-checker : don't need to reset the result of simcal actually, remove unnecessary...
[simgrid.git] / src / instr / instr_paje_trace.c
index 89584d4..555ac02 100644 (file)
@@ -5,6 +5,7 @@
   * under the terms of the license (GNU LGPL) which comes with this package. */
 
 #include "instr/instr_private.h"
+#include "xbt/virtu.h" /* sg_cmdline */
 
 #ifdef HAVE_TRACING
 
@@ -137,6 +138,35 @@ FILE *tracing_file = NULL;
 
 static xbt_dynar_t buffer = NULL;
 
+static void dump_comment (const char *comment)
+{
+  if (!strlen(comment)) return;
+  fprintf (tracing_file, "# %s\n", comment);
+}
+
+static void dump_comment_file (const char *filename)
+{
+  if (!strlen(filename)) return;
+  FILE *file = fopen (filename, "r");
+  if (!file){
+    THROWF (system_error, 1, "Comment file %s could not be opened for reading.", filename);
+  }
+  while (!feof(file)){
+    char c;
+    c = fgetc(file);
+    if (feof(file)) break;
+    fprintf (tracing_file, "# ");
+    while (c != '\n'){
+      fprintf (tracing_file, "%c", c);
+      c = fgetc(file);
+      if (feof(file)) break;
+    }
+    fprintf (tracing_file, "\n");
+  }
+  fclose(file);
+}
+
+
 void TRACE_paje_start(void)
 {
   char *filename = TRACE_get_filename();
@@ -147,6 +177,22 @@ void TRACE_paje_start(void)
 
   XBT_DEBUG("Filename %s is open for writing", filename);
 
+  /* output generator version */
+  fprintf (tracing_file, "#This file was generated using SimGrid-%d.%d.%d\n", SIMGRID_VERSION_MAJOR, SIMGRID_VERSION_MINOR, SIMGRID_VERSION_PATCH);
+  fprintf (tracing_file, "#[");
+  unsigned int cpt;
+  char *str;
+  xbt_dynar_foreach (xbt_cmdline, cpt, str){
+    fprintf(tracing_file, "%s ",str);
+  }
+  fprintf (tracing_file, "]\n");
+
+  /* output one line comment */
+  dump_comment (TRACE_get_comment());
+
+  /* output comment file */
+  dump_comment_file (TRACE_get_comment_file());
+
   /* output header */
   TRACE_header(TRACE_basic());