X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=lttv%2Flttv%2Fstate.c;h=2a0717a9c43caf6997b52ccc61186f031ab4aeca;hb=7b20eed1e2a33658249baf49488b6c93028639f9;hp=ffe3ba1a4178b56e10acf7a1ec56e7ca117ec3aa;hpb=58b4e4ae6fe118dbf6b441692eae833df2229d3e;p=lttv.git diff --git a/lttv/lttv/state.c b/lttv/lttv/state.c index ffe3ba1a..2a0717a9 100644 --- a/lttv/lttv/state.c +++ b/lttv/lttv/state.c @@ -27,9 +27,11 @@ #include #include #include +#include #include #include #include +#include #define PREALLOCATED_EXECUTION_STACK 10 @@ -409,7 +411,7 @@ static void restore_init_state(LttvTraceState *self) start_time = ltt_time_from_uint64( bt_trace_handle_get_timestamp_begin(self->trace->traceset->context, - self->trace->id)); + self->trace->id,BT_CLOCK_REAL)); //lttv_process_trace_seek_time(&self->parent, ltt_time_zero); @@ -2439,7 +2441,7 @@ static gboolean irq_entry(void *hook_data, void *call_data) ts = event->state; nt = ts->name_tables; - irq = lttv_event_get_long_unsigned(event, "irq"); + irq = lttv_event_get_long(event, "irq"); expand_irq_table(ts, irq); @@ -2751,7 +2753,7 @@ static gboolean sched_try_wakeup(void *hook_data, void *call_data) ts = event->state; woken_pid = lttv_event_get_long(event, "tid"); - woken_cpu = lttv_event_get_long_unsigned(event, "target_cpu"); + woken_cpu = lttv_event_get_long(event, "target_cpu"); timestamp = lttv_event_get_timestamp(event); process = lttv_state_find_process_or_create( @@ -2901,7 +2903,7 @@ static gboolean process_fork(void *hook_data, void *call_data) /* Skip Parent PID param */ /* Child PID */ - child_pid = lttv_event_get_long_unsigned(event, "child_tid"); + child_pid = lttv_event_get_long(event, "child_tid"); //ts->target_pid = child_pid; /* Child TGID */ @@ -3014,7 +3016,7 @@ static gboolean process_exit(void *hook_data, void *call_data) ts = event->state; process = ts->running_process[cpu]; - pid = lttv_event_get_long_unsigned(event, "tid"); + pid = lttv_event_get_long(event, "tid"); //s->parent.target_pid = pid; // FIXME : Add this test in the "known state" section @@ -3044,7 +3046,7 @@ static gboolean process_free(void *hook_data, void *call_data) process = ts->running_process[cpu]; /* PID of the process to release */ - release_pid = lttv_event_get_long_unsigned(event, "_tid"); + release_pid = lttv_event_get_long(event, "_tid"); //s->parent.target_pid = release_pid; g_assert(release_pid != 0); @@ -3297,18 +3299,18 @@ static gboolean enum_process_state(void *hook_data, void *call_data) timestamp = lttv_event_get_timestamp(event); /* PID */ - pid = lttv_event_get_long_unsigned(event, "tid"); + pid = lttv_event_get_long(event, "tid"); //s->parent.target_pid = pid; /* Parent PID */ - parent_pid = lttv_event_get_long_unsigned(event, "ppid"); + parent_pid = lttv_event_get_long(event, "ppid"); /* Command name */ command = lttv_event_get_string(event, "name"); /* type */ - type = lttv_event_get_long_unsigned(event, "type"); + type = lttv_event_get_long(event, "type"); //FIXME: type is rarely used, enum must match possible types. @@ -3317,9 +3319,8 @@ static gboolean enum_process_state(void *hook_data, void *call_data) /* Skip submode 5th param */ /* Skip status 6th param */ - /* TGID */ - tgid = lttv_event_get_long_unsigned(event, "pid"); + tgid = lttv_event_get_long(event, "pid"); if(pid == 0) { nb_cpus = lttv_trace_get_num_cpu(ts->trace); @@ -3462,7 +3463,8 @@ void lttv_state_add_event_hooks(LttvTraceset *traceset) lttv_hooks_add(event_hook,schedchange , NULL, LTTV_PRIO_STATE); lttv_hooks_add(event_hook,sched_try_wakeup , NULL, LTTV_PRIO_STATE); lttv_hooks_add(event_hook,process_exit , NULL, LTTV_PRIO_STATE); - lttv_hooks_add(event_hook,process_free , NULL, LTTV_PRIO_STATE); + lttv_hooks_add(event_hook,process_free , NULL, LTTV_PRIO_STATE); + lttv_hooks_add(event_hook,process_fork , NULL, LTTV_PRIO_STATE); lttv_hooks_add(event_hook,process_exec , NULL, LTTV_PRIO_STATE); lttv_hooks_add(event_hook,enum_process_state , NULL, LTTV_PRIO_STATE); lttv_hooks_add(event_hook,statedump_end , NULL, LTTV_PRIO_STATE);