Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[trace] header re-organization (now with a basic version)
authorschnorr <Lucas.Schnorr@imag.fr>
Mon, 20 Aug 2012 15:33:25 +0000 (17:33 +0200)
committerschnorr <Lucas.Schnorr@imag.fr>
Mon, 20 Aug 2012 15:33:25 +0000 (17:33 +0200)
details:
you can generate a basic version of the header by passing
--cfg=tracing/basic:1 when launching your simulator (considering
you are using other arguments to enable the tracing)

buildtools/Cmake/DefinePackages.cmake
src/instr/instr_paje_header.c [new file with mode: 0644]
src/instr/instr_paje_trace.c
src/instr/instr_private.h

index 8340000..a16e83e 100644 (file)
@@ -356,6 +356,7 @@ set(TRACING_SRC
   src/instr/instr_msg_task.c
   src/instr/instr_paje_containers.c
   src/instr/instr_paje_trace.c
+  src/instr/instr_paje_header.c
   src/instr/instr_paje_types.c
   src/instr/instr_paje_values.c
   src/instr/instr_private.h
diff --git a/src/instr/instr_paje_header.c b/src/instr/instr_paje_header.c
new file mode 100644 (file)
index 0000000..f7a62db
--- /dev/null
@@ -0,0 +1,257 @@
+/* Copyright (c) 2010. The SimGrid Team.
+ * All rights reserved.                                                     */
+
+/* This program is free software; you can redistribute it and/or modify it
+  * under the terms of the license (GNU LGPL) which comes with this package. */
+
+#include "instr/instr_private.h"
+
+#ifdef HAVE_TRACING
+
+XBT_LOG_NEW_DEFAULT_SUBCATEGORY(instr_paje_header, instr, "Paje tracing event system (header)");
+
+extern FILE *tracing_file;
+
+static void TRACE_header_PajeDefineContainerType (int basic)
+{
+  fprintf(tracing_file, "%%EventDef PajeDefineContainerType %d\n", PAJE_DefineContainerType);
+  fprintf(tracing_file, "%%       Alias string\n");
+  if (basic){
+    fprintf(tracing_file, "%%       ContainerType string\n");
+  }else{
+    fprintf(tracing_file, "%%       Type string\n");
+  }
+  fprintf(tracing_file, "%%       Name string\n");
+  fprintf(tracing_file, "%%EndEventDef\n");
+}
+
+static void TRACE_header_PajeDefineVariableType (int basic)
+{
+  fprintf(tracing_file, "%%EventDef PajeDefineVariableType %d\n", PAJE_DefineVariableType);
+  fprintf(tracing_file, "%%       Alias string\n");
+  if (basic){
+    fprintf(tracing_file, "%%       ContainerType string\n");
+  }else{
+    fprintf(tracing_file, "%%       Type string\n");
+  }
+  fprintf(tracing_file, "%%       Name string\n");
+  fprintf(tracing_file, "%%       Color string\n");
+  fprintf(tracing_file, "%%EndEventDef\n");
+}
+
+static void TRACE_header_PajeDefineStateType (int basic)
+{
+  fprintf(tracing_file, "%%EventDef PajeDefineStateType %d\n", PAJE_DefineStateType);
+  fprintf(tracing_file, "%%       Alias string\n");
+  if (basic){
+    fprintf(tracing_file, "%%       ContainerType string\n");
+  }else{
+    fprintf(tracing_file, "%%       Type string\n");
+  }
+  fprintf(tracing_file, "%%       Name string\n");
+  fprintf(tracing_file, "%%EndEventDef\n");
+}
+
+static void TRACE_header_PajeDefineEventType (int basic)
+{
+  fprintf(tracing_file, "%%EventDef PajeDefineEventType %d\n", PAJE_DefineEventType);
+  fprintf(tracing_file, "%%       Alias string\n");
+  if (basic){
+    fprintf(tracing_file, "%%       ContainerType string\n");
+  }else{
+    fprintf(tracing_file, "%%       Type string\n");
+  }
+  fprintf(tracing_file, "%%       Name string\n");
+  fprintf(tracing_file, "%%EndEventDef\n");
+}
+
+static void TRACE_header_PajeDefineLinkType (int basic)
+{
+  fprintf(tracing_file, "%%EventDef PajeDefineLinkType %d\n", PAJE_DefineLinkType);
+  fprintf(tracing_file, "%%       Alias string\n");
+  if (basic){
+    fprintf(tracing_file, "%%       ContainerType string\n");
+    fprintf(tracing_file, "%%       SourceContainerType string\n");
+    fprintf(tracing_file, "%%       DestContainerType string\n");
+  }else{
+    fprintf(tracing_file, "%%       Type string\n");
+    fprintf(tracing_file, "%%       StartContainerType string\n");
+    fprintf(tracing_file, "%%       EndContainerType string\n");
+  }
+  fprintf(tracing_file, "%%       Name string\n");
+  fprintf(tracing_file, "%%EndEventDef\n");
+}
+
+static void TRACE_header_PajeDefineEntityValue (int basic)
+{
+  fprintf(tracing_file, "%%EventDef PajeDefineEntityValue %d\n", PAJE_DefineEntityValue);
+  fprintf(tracing_file, "%%       Alias string\n");
+  if (basic){
+    fprintf(tracing_file, "%%       EntityType string\n");
+  }else{
+    fprintf(tracing_file, "%%       Type string\n");
+  }
+  fprintf(tracing_file, "%%       Name string\n");
+  fprintf(tracing_file, "%%       Color string\n");
+  fprintf(tracing_file, "%%EndEventDef\n");
+}
+
+static void TRACE_header_PajeCreateContainer (int basic)
+{
+  fprintf(tracing_file, "%%EventDef PajeCreateContainer %d\n", PAJE_CreateContainer);
+  fprintf(tracing_file, "%%       Time date\n");
+  fprintf(tracing_file, "%%       Alias string\n");
+  fprintf(tracing_file, "%%       Type string\n");
+  fprintf(tracing_file, "%%       Container string\n");
+  fprintf(tracing_file, "%%       Name string\n");
+  fprintf(tracing_file, "%%EndEventDef\n");
+}
+
+static void TRACE_header_PajeDestroyContainer (int basic)
+{
+  fprintf(tracing_file, "%%EventDef PajeDestroyContainer %d\n", PAJE_DestroyContainer);
+  fprintf(tracing_file, "%%       Time date\n");
+  fprintf(tracing_file, "%%       Type string\n");
+  fprintf(tracing_file, "%%       Name string\n");
+  fprintf(tracing_file, "%%EndEventDef\n");
+}
+
+static void TRACE_header_PajeSetVariable (int basic)
+{
+  fprintf(tracing_file, "%%EventDef PajeSetVariable %d\n", PAJE_SetVariable);
+  fprintf(tracing_file, "%%       Time date\n");
+  fprintf(tracing_file, "%%       Type string\n");
+  fprintf(tracing_file, "%%       Container string\n");
+  fprintf(tracing_file, "%%       Value double\n");
+  fprintf(tracing_file, "%%EndEventDef\n");
+}
+
+static void TRACE_header_PajeAddVariable (int basic)
+{
+  fprintf(tracing_file, "%%EventDef PajeAddVariable %d\n", PAJE_AddVariable);
+  fprintf(tracing_file, "%%       Time date\n");
+  fprintf(tracing_file, "%%       Type string\n");
+  fprintf(tracing_file, "%%       Container string\n");
+  fprintf(tracing_file, "%%       Value double\n");
+  fprintf(tracing_file, "%%EndEventDef\n");
+}
+
+static void TRACE_header_PajeSubVariable (int basic)
+{
+  fprintf(tracing_file, "%%EventDef PajeSubVariable %d\n", PAJE_SubVariable);
+  fprintf(tracing_file, "%%       Time date\n");
+  fprintf(tracing_file, "%%       Type string\n");
+  fprintf(tracing_file, "%%       Container string\n");
+  fprintf(tracing_file, "%%       Value double\n");
+  fprintf(tracing_file, "%%EndEventDef\n");
+}
+
+
+static void TRACE_header_PajeSetState (int basic)
+{
+  fprintf(tracing_file, "%%EventDef PajeSetState %d\n", PAJE_SetState);
+  fprintf(tracing_file, "%%       Time date\n");
+  fprintf(tracing_file, "%%       Type string\n");
+  fprintf(tracing_file, "%%       Container string\n");
+  fprintf(tracing_file, "%%       Value string\n");
+  fprintf(tracing_file, "%%EndEventDef\n");
+}
+
+static void TRACE_header_PajePushState (int basic)
+{
+  fprintf(tracing_file, "%%EventDef PajePushState %d\n", PAJE_PushState);
+  fprintf(tracing_file, "%%       Time date\n");
+  fprintf(tracing_file, "%%       Type string\n");
+  fprintf(tracing_file, "%%       Container string\n");
+  fprintf(tracing_file, "%%       Value string\n");
+  fprintf(tracing_file, "%%EndEventDef\n");
+}
+
+static void TRACE_header_PajePopState (int basic)
+{
+  fprintf(tracing_file, "%%EventDef PajePopState %d\n", PAJE_PopState);
+  fprintf(tracing_file, "%%       Time date\n");
+  fprintf(tracing_file, "%%       Type string\n");
+  fprintf(tracing_file, "%%       Container string\n");
+  fprintf(tracing_file, "%%EndEventDef\n");
+}
+
+static void TRACE_header_PajeResetState (int basic)
+{
+  if (basic) return;
+
+  fprintf(tracing_file, "%%EventDef PajeResetState %d\n", PAJE_ResetState);
+  fprintf(tracing_file, "%%       Time date\n");
+  fprintf(tracing_file, "%%       Type string\n");
+  fprintf(tracing_file, "%%       Container string\n");
+  fprintf(tracing_file, "%%EndEventDef\n");
+}
+
+static void TRACE_header_PajeStartLink (int basic)
+{
+  fprintf(tracing_file, "%%EventDef PajeStartLink %d\n", PAJE_StartLink);
+  fprintf(tracing_file, "%%       Time date\n");
+  fprintf(tracing_file, "%%       Type string\n");
+  fprintf(tracing_file, "%%       Container string\n");
+  fprintf(tracing_file, "%%       Value string\n");
+  if (basic){
+    fprintf(tracing_file, "%%       SourceContainer string\n");
+  }else{
+    fprintf(tracing_file, "%%       StartContainer string\n");
+  }
+  fprintf(tracing_file, "%%       Key string\n");
+  fprintf(tracing_file, "%%EndEventDef\n");
+}
+
+static void TRACE_header_PajeEndLink (int basic)
+{
+  fprintf(tracing_file, "%%EventDef PajeEndLink %d\n", PAJE_EndLink);
+  fprintf(tracing_file, "%%       Time date\n");
+  fprintf(tracing_file, "%%       Type string\n");
+  fprintf(tracing_file, "%%       Container string\n");
+  fprintf(tracing_file, "%%       Value string\n");
+  if (basic){
+    fprintf(tracing_file, "%%       DestContainer string\n");
+  }else{
+    fprintf(tracing_file, "%%       EndContainer string\n");
+  }
+  fprintf(tracing_file, "%%       Key string\n");
+  fprintf(tracing_file, "%%EndEventDef\n");
+}
+
+static void TRACE_header_PajeNewEvent (int basic)
+{
+  fprintf(tracing_file, "%%EventDef PajeNewEvent %d\n", PAJE_NewEvent);
+  fprintf(tracing_file, "%%       Time date\n");
+  fprintf(tracing_file, "%%       Type string\n");
+  fprintf(tracing_file, "%%       Container string\n");
+  fprintf(tracing_file, "%%       Value string\n");
+  fprintf(tracing_file, "%%EndEventDef\n");
+}
+
+void TRACE_header(int basic)
+{
+  XBT_DEBUG ("Define paje header");
+  TRACE_header_PajeDefineContainerType (basic);
+  TRACE_header_PajeDefineVariableType (basic);
+  TRACE_header_PajeDefineStateType (basic);
+  TRACE_header_PajeDefineEventType (basic);
+  TRACE_header_PajeDefineLinkType (basic);
+  TRACE_header_PajeDefineEntityValue (basic);
+  TRACE_header_PajeCreateContainer (basic);
+  TRACE_header_PajeDestroyContainer (basic);
+  TRACE_header_PajeSetVariable (basic);
+  TRACE_header_PajeAddVariable (basic);
+  TRACE_header_PajeSubVariable (basic);
+  TRACE_header_PajeSetState (basic);
+  TRACE_header_PajePushState (basic);
+  TRACE_header_PajePopState (basic);
+  TRACE_header_PajeResetState (basic);
+  TRACE_header_PajeStartLink (basic);
+  TRACE_header_PajeEndLink (basic);
+  TRACE_header_PajeNewEvent (basic);
+}
+
+#endif
+
+
index 0e0af37..89584d4 100644 (file)
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(instr_paje_trace, instr, "Paje tracing event system");
 
-typedef enum {
-  PAJE_DefineContainerType,
-  PAJE_DefineVariableType,
-  PAJE_DefineStateType,
-  PAJE_DefineEventType,
-  PAJE_DefineLinkType,
-  PAJE_DefineEntityValue,
-  PAJE_CreateContainer,
-  PAJE_DestroyContainer,
-  PAJE_SetVariable,
-  PAJE_AddVariable,
-  PAJE_SubVariable,
-  PAJE_SetState,
-  PAJE_PushState,
-  PAJE_PopState,
-  PAJE_ResetState,
-  PAJE_StartLink,
-  PAJE_EndLink,
-  PAJE_NewEvent
-} e_event_type;
-
 typedef struct paje_event *paje_event_t;
 typedef struct paje_event {
   double timestamp;
@@ -154,7 +133,7 @@ typedef struct s_newEvent {
   val_t value;
 }s_newEvent_t;
 
-static FILE *tracing_file = NULL;
+FILE *tracing_file = NULL;
 
 static xbt_dynar_t buffer = NULL;
 
@@ -169,7 +148,7 @@ void TRACE_paje_start(void)
   XBT_DEBUG("Filename %s is open for writing", filename);
 
   /* output header */
-  TRACE_paje_create_header();
+  TRACE_header(TRACE_basic());
 
   buffer = xbt_dynar_new (sizeof(paje_event_t), NULL);
 }
@@ -212,138 +191,6 @@ void TRACE_paje_dump_buffer (int force)
   XBT_DEBUG("%s: ends", __FUNCTION__);
 }
 
-void TRACE_paje_create_header(void)
-{
-  XBT_DEBUG ("Define paje header");
-  fprintf(tracing_file, "\
-%%EventDef PajeDefineContainerType %d \n\
-%%       Alias string \n\
-%%       Type string \n\
-%%       Name string \n\
-%%EndEventDef \n\
-%%EventDef PajeDefineVariableType %d \n\
-%%       Alias string \n\
-%%       Type string \n\
-%%       Name string \n\
-%%       Color color \n\
-%%EndEventDef \n\
-%%EventDef PajeDefineStateType %d \n\
-%%       Alias string \n\
-%%       Type string \n\
-%%       Name string \n\
-%%EndEventDef \n\
-%%EventDef PajeDefineEventType %d \n\
-%%       Alias string \n\
-%%       Type string \n\
-%%       Name string \n\
-%%EndEventDef \n\
-%%EventDef PajeDefineLinkType %d \n\
-%%       Alias string \n\
-%%       Type string \n\
-%%       StartContainerType string \n\
-%%       EndContainerType string \n\
-%%       Name string \n\
-%%EndEventDef \n\
-%%EventDef PajeDefineEntityValue %d \n\
-%%       Alias string \n\
-%%       Type string \n\
-%%       Name string \n\
-%%       Color color \n\
-%%EndEventDef \n\
-%%EventDef PajeCreateContainer %d \n\
-%%       Time date \n\
-%%       Alias string \n\
-%%       Type string \n\
-%%       Container string \n\
-%%       Name string \n\
-%%EndEventDef \n\
-%%EventDef PajeDestroyContainer %d \n\
-%%       Time date \n\
-%%       Type string \n\
-%%       Name string \n\
-%%EndEventDef \n\
-%%EventDef PajeSetVariable %d \n\
-%%       Time date \n\
-%%       Type string \n\
-%%       Container string \n\
-%%       Value double \n\
-%%EndEventDef\n\
-%%EventDef PajeAddVariable %d \n\
-%%       Time date \n\
-%%       Type string \n\
-%%       Container string \n\
-%%       Value double \n\
-%%EndEventDef\n\
-%%EventDef PajeSubVariable %d \n\
-%%       Time date \n\
-%%       Type string \n\
-%%       Container string \n\
-%%       Value double \n\
-%%EndEventDef\n\
-%%EventDef PajeSetState %d \n\
-%%       Time date \n\
-%%       Type string \n\
-%%       Container string \n\
-%%       Value string \n\
-%%EndEventDef\n\
-%%EventDef PajePushState %d \n\
-%%       Time date \n\
-%%       Type string \n\
-%%       Container string \n\
-%%       Value string \n\
-%%EndEventDef\n\
-%%EventDef PajePopState %d \n\
-%%       Time date \n\
-%%       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\
-%%       StartContainer string \n\
-%%       Key string \n\
-%%EndEventDef\n\
-%%EventDef PajeEndLink %d \n\
-%%       Time date \n\
-%%       Type string \n\
-%%       Container string \n\
-%%       Value string \n\
-%%       EndContainer string \n\
-%%       Key string \n\
-%%EndEventDef\n\
-%%EventDef PajeNewEvent %d \n\
-%%       Time date \n\
-%%       Type string \n\
-%%       Container string \n\
-%%       Value string \n\
-%%EndEventDef\n",
-  PAJE_DefineContainerType,
-  PAJE_DefineVariableType,
-  PAJE_DefineStateType,
-  PAJE_DefineEventType,
-  PAJE_DefineLinkType,
-  PAJE_DefineEntityValue,
-  PAJE_CreateContainer,
-  PAJE_DestroyContainer,
-  PAJE_SetVariable,
-  PAJE_AddVariable,
-  PAJE_SubVariable,
-  PAJE_SetState,
-  PAJE_PushState,
-  PAJE_PopState,
-  PAJE_ResetState,
-  PAJE_StartLink,
-  PAJE_EndLink,
-  PAJE_NewEvent);
-}
-
 /* internal do the instrumentation module */
 static void insert_into_buffer (paje_event_t tbi)
 {
index f3df1b2..58b4475 100644 (file)
 #include "simix/smx_private.h"
 #include "xbt/graph_private.h"
 
+typedef enum {
+  PAJE_DefineContainerType,
+  PAJE_DefineVariableType,
+  PAJE_DefineStateType,
+  PAJE_DefineEventType,
+  PAJE_DefineLinkType,
+  PAJE_DefineEntityValue,
+  PAJE_CreateContainer,
+  PAJE_DestroyContainer,
+  PAJE_SetVariable,
+  PAJE_AddVariable,
+  PAJE_SubVariable,
+  PAJE_SetState,
+  PAJE_PushState,
+  PAJE_PopState,
+  PAJE_ResetState,
+  PAJE_StartLink,
+  PAJE_EndLink,
+  PAJE_NewEvent
+} e_event_type;
+
 typedef enum {
   TYPE_VARIABLE,
   TYPE_LINK,
@@ -79,8 +100,10 @@ extern xbt_dict_t user_host_variables;
 extern xbt_dict_t user_link_variables;
 extern double TRACE_last_timestamp_to_dump;
 
+/* instr_paje_header.c */
+void TRACE_header(int basic);
+
 /* from paje.c */
-void TRACE_paje_create_header(void);
 void TRACE_paje_start(void);
 void TRACE_paje_end(void);
 void TRACE_paje_dump_buffer (int force);