0.5.26
[lttv.git] / ltt / branches / poly / ltt / tracefile.c
index c1001c25b157abf8d6a967c065b0a0b0fd6351cc..a1e19a7fae56871a6d0889a6101c35ce8f760780 100644 (file)
@@ -1582,6 +1582,10 @@ int ltt_tracefile_seek_position(LttTracefile *tf, const LttEventPosition *ep) {
 
   tf->event.offset = ep->offset;
 
+       /* Put back the event real tsc */
+       tf->event.tsc = ep->tsc;
+       tf->buffer.tsc = ep->tsc;
+
   err = ltt_tracefile_read_update_event(tf);
   if(err) goto fail;
   err = ltt_tracefile_read_op(tf);
@@ -1742,7 +1746,6 @@ int ltt_tracefile_read_update_event(LttTracefile *tf)
                tf->buffer.tsc = event->tsc;
                pos += sizeof(guint64);
        }
-       
        event->event_time = ltt_interpolate_time(tf, event);
   event->facility_id = *(guint8*)pos;
   pos += sizeof(guint8);
@@ -1929,7 +1932,7 @@ void ltt_update_event_size(LttTracefile *tf)
     }
   } else {
     if(!f->exists) {
-      g_error("Unknown facility %hhu (0x%hhx) in tracefile %s",
+      g_warning("Unknown facility %hhu (0x%hhx) in tracefile %s",
           tf->event.facility_id,
           tf->event.facility_id,
           g_quark_to_string(tf->name));
@@ -1940,7 +1943,7 @@ void ltt_update_event_size(LttTracefile *tf)
       ltt_facility_eventtype_get(f, tf->event.event_id);
 
     if(!event_type) {
-      g_error("Unknown event id %hhu in facility %s in tracefile %s",
+      g_warning("Unknown event id %hhu in facility %s in tracefile %s",
           tf->event.event_id,
           g_quark_to_string(f->name),
           g_quark_to_string(tf->name));
@@ -1969,7 +1972,12 @@ void ltt_update_event_size(LttTracefile *tf)
 facility_error:
 event_type_error:
 event_id_error:
-  tf->event.data_size = 0;
+       if(tf->event.event_size == 0xFFFF) {
+               g_error("Cannot jump over an unknown event bigger than 0xFFFE bytes");
+       }
+       /* The facility is unknown : use the kernel information about this event
+        * to jump over it. */
+  tf->event.data_size = tf->event.event_size;
 }
 
 
@@ -2658,6 +2666,10 @@ gint check_fields_compatibility(LttEventType *event_type1,
     different = 1;
     goto end;
   }
+       if(type1->network != type2->network) {
+               different = 1;
+               goto end;
+       }
  
   switch(type1->type_class) {
     case LTT_INT_FIXED:
This page took 0.02347 seconds and 4 git commands to generate.