LttvTracefileState *tfcs;
- LttTime null_time = {0,0};
-
if(self->processes != NULL) lttv_state_free_process_table(self->processes);
self->processes = g_hash_table_new(process_hash, process_equal);
self->nb_event = 0;
for(i = 0 ; i < nb_tracefile ; i++) {
tfcs = LTTV_TRACEFILE_STATE(self->parent.tracefiles[i]);
- tfcs->parent.timestamp = null_time;
+ ltt_trace_time_span_get(self->parent.t, &tfcs->parent.timestamp, NULL);
tfcs->saved_position = 0;
tfcs->process = lttv_state_create_process(tfcs, NULL,0);
tfcs->process->state->s = LTTV_STATE_RUN;
es->t = LTTV_STATE_USER_MODE;
es->n = LTTV_STATE_SUBMODE_NONE;
es->entry = tfs->parent.timestamp;
+ g_assert(tfs->parent.timestamp.tv_sec != 0);
es->change = tfs->parent.timestamp;
es->s = LTTV_STATE_WAIT_FORK;
return process;
}
-
LttvProcessState *
lttv_state_find_process_from_trace(LttvTraceState *ts, GQuark cpu, guint pid)
{
guint child_pid;
/* Child PID */
- f = trace_hook->f3;
+ f = trace_hook->f2;
child_pid = ltt_event_get_unsigned(s->parent.e, f);
lttv_state_create_process(s, s->process, child_pid);
associated by id hooks. */
hooks = g_array_new(FALSE, FALSE, sizeof(LttvTraceHook));
- g_array_set_size(hooks, 9);
+ g_array_set_size(hooks, 8);
lttv_trace_find_hook(ts->parent.t, "core","syscall_entry","syscall_id",
NULL, NULL, syscall_entry, &g_array_index(hooks, LttvTraceHook, 0));
LttvTraceHook hook_start, hook_end;
+ lttv_state_add_event_hooks(self);
+
nb_trace = lttv_traceset_number(traceset);
for(i = 0 ; i < nb_trace ; i++) {
ts = (LttvTraceState *)self->parent.traces[i];
tfs->parent.event_by_id, hook_end.id), hook_end.h, NULL);
}
}
+
+ lttv_state_remove_event_hooks(self);
}
gint lttv_state_save_hook_remove_event_hooks(void *hook_data, void *call_data)