X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Flttv%2Fstate.c;h=f13bd8dba876b4cc960497c8de76405e92352d6a;hb=d3e01c7a1f640d3b08fd896b29f4ad72e65033a9;hp=05852dfb784d2c70bf44f34390ec6c9b5e610ba7;hpb=2cdc690b245223a2805188d0584564bdfcbc9282;p=lttv.git diff --git a/ltt/branches/poly/lttv/lttv/state.c b/ltt/branches/poly/lttv/lttv/state.c index 05852dfb..f13bd8db 100644 --- a/ltt/branches/poly/lttv/lttv/state.c +++ b/ltt/branches/poly/lttv/lttv/state.c @@ -121,8 +121,6 @@ restore_init_state(LttvTraceState *self) 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; @@ -132,7 +130,7 @@ restore_init_state(LttvTraceState *self) 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; @@ -808,13 +806,13 @@ lttv_state_create_process(LttvTracefileState *tfs, LttvProcessState *parent, 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) { @@ -992,7 +990,7 @@ static gboolean process_fork(LttvTraceHook *trace_hook, LttvTracefileState *s) 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); @@ -1072,7 +1070,7 @@ void lttv_state_add_event_hooks(LttvTracesetState *self) 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)); @@ -1255,6 +1253,8 @@ void lttv_state_save_add_event_hooks(LttvTracesetState *self) 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]; @@ -1318,6 +1318,8 @@ void lttv_state_save_remove_event_hooks(LttvTracesetState *self) 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)