Enable support for opening multiple trace
[lttv.git] / lttv / modules / gui / controlflow / eventhooks.c
index ef5cbc62fdf31a0667c486e385b2383450942f0c..f024cd3559ee11c319d9948be7b70319123df33a 100644 (file)
@@ -130,8 +130,7 @@ static void request_background_data(ControlFlowData *control_flow_data)
   
   for(i=0;i<num_traces;i++) {
     trace = lttv_traceset_get(ts, i);
-    tstate = trace->state;
-
+  
     if(lttvwindowtraces_get_ready(g_quark_from_string("state"),trace)==FALSE
         && !ts->has_precomputed_states) {
 
@@ -501,7 +500,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) {
@@ -578,7 +577,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);
@@ -719,7 +718,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
@@ -811,7 +810,7 @@ int before_execmode_hook(void *hook_data, void *call_data)
   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 +894,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 +963,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 +1065,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 +1159,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 +1311,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 +1776,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
This page took 0.024094 seconds and 4 git commands to generate.