required module for textDump : batchAnalysis
[lttv.git] / ltt / branches / poly / lttv / textDump.c
index acf06e4e3cf3f449904098b4759cb3a35d3ade1d..ccc69c07f6aae270bdaf6fa98df3e1d6ce472443 100644 (file)
@@ -59,7 +59,7 @@ void print_field(LttEvent *e, LttField *f, GString *s, gboolean field_names) {
 
     case LTT_ENUM:
       g_string_append_printf(s, " %s", ltt_enum_string_get(type,
-          ltt_event_get_unsigned(e,f)));
+          ltt_event_get_unsigned(e,f)-1));
       break;
 
     case LTT_ARRAY:
@@ -92,8 +92,8 @@ void print_field(LttEvent *e, LttField *f, GString *s, gboolean field_names) {
 
 
 void lttv_event_to_string(LttEvent *e, LttTracefile *tf, GString *s,
-    gboolean mandatory_fields, gboolean field_names)
-{
+    gboolean mandatory_fields, gboolean field_names, LttvTracefileState *tfs)
+{ 
   LttFacility *facility;
 
   LttEventType *event_type;
@@ -116,9 +116,12 @@ void lttv_event_to_string(LttEvent *e, LttTracefile *tf, GString *s,
         ltt_eventtype_name(event_type), (long)time.tv_sec, time.tv_nsec,
         ltt_tracefile_name(tf));
     /* Print the process id and the state/interrupt type of the process */
+    g_string_append_printf(s,", %d, %s", tfs->process->pid,
+                          g_quark_to_string(tfs->process->state->t));
   }
 
-  print_field(e, field, s, field_names);
+  if(field)
+    print_field(e, field, s, field_names);
 } 
 
 
@@ -180,7 +183,8 @@ static int write_event_content(void *hook_data, void *call_data)
 
   e = tfc->e;
 
-  lttv_event_to_string(e, tfc->tf, a_string, TRUE, a_field_names);
+  lttv_event_to_string(e, tfc->tf, a_string, TRUE, a_field_names, tfs);
+  g_string_append_printf(a_string,"\n");  
 
   if(a_state) {
     g_string_append_printf(a_string, " %s",
@@ -192,13 +196,24 @@ static int write_event_content(void *hook_data, void *call_data)
 }
 
 
-//void init(int argc, char **argv)
 G_MODULE_EXPORT void init(LttvModule *self, int argc, char **argv)
 {
   LttvAttributeValue value;
 
   LttvIAttribute *attributes = LTTV_IATTRIBUTE(lttv_global_attributes());
 
+  LttvModule *batchAnalysis  =
+         lttv_module_require(self, "batchAnalysis", argc, argv);
+
+  if(batchAnalysis == NULL)
+  {
+    g_error("Can't load required module batchAnalysis");
+    return;
+  }
+       
+  
+  a_string = g_string_new("");
+
   a_file_name = NULL;
   lttv_option_add("output", 'o', 
       "output file where the text is written", 
@@ -247,6 +262,8 @@ G_MODULE_EXPORT void destroy()
 
   lttv_option_remove("process_state");
 
+  g_string_free(a_string, TRUE);
+
   lttv_hooks_remove_data(before_event, write_event_content, NULL);
 
   lttv_hooks_remove_data(before_trace, write_trace_header, NULL);
This page took 0.023905 seconds and 4 git commands to generate.