0.5.26
[lttv.git] / ltt / branches / poly / ltt / tracefile.c
index 3fbf3b2e05b5d735ee06159cff33c0fc93f4df0e..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;
 }
 
 
This page took 0.024783 seconds and 4 git commands to generate.