X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=lttv%2Fmodules%2Fgui%2Fcontrolflow%2Feventhooks.c;h=30f0c76d69f05211721ca33bea5bf47655cbedd5;hb=b9ce0bad7daf7c0a2333c91fdb1e35d602afe17f;hp=6269e5c48e1c42ec4c19e1b73999e0cf2ba00d25;hpb=d940a891acb90efe23c4b3e2779cb05a9998e2a2;p=lttv.git diff --git a/lttv/modules/gui/controlflow/eventhooks.c b/lttv/modules/gui/controlflow/eventhooks.c index 6269e5c4..30f0c76d 100644 --- a/lttv/modules/gui/controlflow/eventhooks.c +++ b/lttv/modules/gui/controlflow/eventhooks.c @@ -12,8 +12,8 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA 02111-1307, USA. + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. */ @@ -59,10 +59,6 @@ //#include -#include -#include -#include - #include #include #include @@ -121,7 +117,6 @@ static void request_background_data(ControlFlowData *control_flow_data) gint num_traces = lttv_traceset_number(ts); gint i; LttvTrace *trace; - LttvTraceState *tstate; LttvHooks *background_ready_hook = lttv_hooks_new(); lttv_hooks_add(background_ready_hook, background_ready, control_flow_data, @@ -130,8 +125,7 @@ static void request_background_data(ControlFlowData *control_flow_data) for(i=0;istate; - + if(lttvwindowtraces_get_ready(g_quark_from_string("state"),trace)==FALSE && !ts->has_precomputed_states) { @@ -311,7 +305,6 @@ HashedProcessData *get_hashed_process_data(ControlFlowData *control_flow_data, &birth, trace_num, process->name, - process->brand, &pl_height, &process_info, &hashed_process_data); @@ -501,7 +494,7 @@ int before_trywakeup_hook(void *hook_data, void *call_data) * draw items from the beginning of the read for it. If it is not * present, it's a new process and it was not present : it will * be added after the state update. TOCHECK: What does that last para mean? */ - guint trace_num = 0; /*TODO ybrosseau 2012-08-23: use right number */ + guint trace_num = lttv_traceset_get_trace_index_from_event(event); LttvProcessState *process = lttv_state_find_process(ts, woken_cpu, woken_pid); if(process != NULL) { @@ -559,7 +552,6 @@ int before_schedchange_hook(void *hook_data, void *call_data) //LttvProcessState *old_process = ts->running_process[cpu]; guint pid_in, pid_out; - gint64 state_out; LttTime evtime; event = (LttvEvent *) call_data; if (strcmp(lttv_traceset_get_name_from_event(event),"sched_switch") != 0) @@ -577,8 +569,7 @@ int before_schedchange_hook(void *hook_data, void *call_data) pid_out = lttv_event_get_long(event, "prev_tid"); pid_in = lttv_event_get_long(event, "next_tid"); - state_out = lttv_event_get_long(event, "prev_state"); - guint trace_number = 0;//TODO fdeslauriers 2012-07-17: // Use trace handle to know trace number + guint trace_number = lttv_traceset_get_trace_index_from_event(event); process = lttv_state_find_process(ts,cpu,pid_out); evtime = lttv_event_get_timestamp(event); @@ -637,7 +628,7 @@ int before_schedchange_hook(void *hook_data, void *call_data) evtime ); } else - g_warning("Cannot find pin_in in schedchange %u", pid_in); + g_warning("Cannot find pid_in in schedchange %u at %lu.%lu", pid_in, evtime.tv_sec, evtime.tv_nsec); #ifdef BABEL_CLEANUP tfc->target_pid = target_pid_saved; #endif //babel_cleanup @@ -719,7 +710,7 @@ int after_schedchange_hook(void *hook_data, void *call_data) //process_in = lttv_state_find_process(ts, ANY_CPU, pid_in); //process_in = tfs->process; guint cpu = lttv_traceset_get_cpuid_from_event(event); - guint trace_num = 0; /* TODO set right trace number */ + guint trace_num = lttv_traceset_get_trace_index_from_event(event); process_in = ts->running_process[cpu]; /* It should exist, because we are after the state update. */ #ifdef EXTRA_CHECK @@ -788,7 +779,6 @@ int before_execmode_hook(void *hook_data, void *call_data) { LttvEvent *event; guint cpu; - guint pid = 0; LttvTraceState *ts; LttvProcessState *process; @@ -806,12 +796,11 @@ int before_execmode_hook(void *hook_data, void *call_data) LttTime evtime = lttv_event_get_timestamp(event); ControlFlowData *control_flow_data = (ControlFlowData*)hook_data; /* For the pid */ - LttvTraceset *traceSet = lttvwindow_get_traceset(control_flow_data->tab); cpu = lttv_traceset_get_cpuid_from_event(event); ts = event->state; - guint trace_number = 0;//TODO fdeslauriers 2012-07-17: // Use trace handle to know trace number + guint trace_number = lttv_traceset_get_trace_index_from_event(event); //TODO ybrosseau 2013-04-09 validate that using the running process is the right choice //process = lttv_state_find_process(ts ,cpu ,pid); @@ -895,7 +884,7 @@ int before_process_exit_hook(void *hook_data, void *call_data) /* Add process to process list (if not present) */ //LttvProcessState *process = tfs->process; guint cpu = lttv_traceset_get_cpuid_from_event(event); - guint trace_num = 0; /* TODO set right trace number */ + guint trace_num = lttv_traceset_get_trace_index_from_event(event); LttvProcessState *process = ts->running_process[cpu]; guint pid = process->pid; @@ -964,7 +953,7 @@ int before_process_release_hook(void *hook_data, void *call_data) LttTime evtime = lttv_event_get_timestamp(event); - guint trace_num = 0; /* TODO set right trace number */ + guint trace_num = lttv_traceset_get_trace_index_from_event(event); guint pid; { @@ -1066,7 +1055,7 @@ int after_process_fork_hook(void *hook_data, void *call_data) /* It should exist, because we are after the state update. */ g_assert(process_child != NULL); - guint trace_num = 0; /* TODO put right */ + guint trace_num = lttv_traceset_get_trace_index_from_event(event); /* Cannot use current process, because this action is done by the parent * on its child. */ @@ -1160,7 +1149,7 @@ int after_process_exit_hook(void *hook_data, void *call_data) /* Add process to process list (if not present) */ //LttvProcessState *process = tfs->process; guint cpu = lttv_traceset_get_cpuid_from_event(event); - guint trace_num = 0; /* TODO set right trace number */ + guint trace_num = lttv_traceset_get_trace_index_from_event(event); LttvProcessState *process = ts->running_process[cpu]; /* It should exist, because we are after the state update. */ @@ -1312,7 +1301,7 @@ int after_event_enum_process_hook(void *hook_data, void *call_data) HashedProcessData *hashed_process_data_in = NULL; ProcessList *process_list = control_flow_data->process_list; - guint trace_num = 0; /* TODO put right trace number */ + guint trace_num = lttv_traceset_get_trace_index_from_event(event); guint pid_in; { @@ -1777,8 +1766,8 @@ void draw_closure(gpointer key, gpointer value, gpointer user_data) #ifdef EXTRA_CHECK g_assert(lttv_traceset_number(tsc->ts) > 0); #endif //EXTRA_CHECK - //TODO Fdeslauriers 2012-07-17: adapt for multiple traces - LttvTrace *trace = lttv_traceset_get(ts,0); + + LttvTrace *trace = lttv_traceset_get(ts, process_info->trace_num); LttvTraceState *trace_state = trace->state; #if 0 @@ -2031,10 +2020,6 @@ int before_statedump_end(void *hook_data, void *call_data) ControlFlowData *control_flow_data = (ControlFlowData*) hook_data; - - LttvTraceState *ts = event->state; - - ProcessList *process_list = control_flow_data->process_list; #ifdef BABEL_CLEANUP