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);
tf->buffer.tsc = event->tsc;
pos += sizeof(guint64);
}
-
event->event_time = ltt_interpolate_time(tf, event);
event->facility_id = *(guint8*)pos;
pos += sizeof(guint8);
}
} 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));
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));
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;
}