header = (struct ltt_block_start_header*)tf->buffer.head;
- if(parse_trace_header(header->trace, tf, NULL)) goto unmap_file;
+ if(parse_trace_header(header->trace, tf, NULL)) {
+ g_warning("parse_trace_header error");
+ goto unmap_file;
+ }
//store the size of the file
tf->file_size = lTDFStat.st_size;
g_assert(group->len > 0);
tf = &g_array_index (group, LttTracefile, 0);
header = (struct ltt_block_start_header*)tf->buffer.head;
- g_assert(parse_trace_header(header->trace, tf, t) == 0);
+ g_assert(parse_trace_header(header->trace,
+ tf, t) == 0);
t->num_cpu = group->len;
} else if(ltt_time_compare(time, tf->buffer.begin.timestamp) < 0) {
/* go to lower part */
- high = block_num;
+ high = block_num - 1;
} else if(ltt_time_compare(time, tf->buffer.end.timestamp) > 0) {
/* go to higher part */
- low = block_num;
+ low = block_num + 1;
} else {/* The event is right in the buffer!
(or in the next buffer first event) */
while(1) {
/* seek over the buffer header if we are at the buffer start */
if(tf->event.offset == 0) {
- tf->event.offset += sizeof(struct ltt_block_start_header)
- + tf->buffer_header_size;
+ tf->event.offset += tf->buffer_header_size;
if(tf->event.offset == tf->buf_size - tf->buffer.lost_size) {
ret = ERANGE;
ret = ERANGE;
goto found;
}
+ g_assert(tf->event.offset < tf->buf_size - tf->buffer.lost_size);
found:
return ret;