thread brand
authorcompudj <compudj@04897980-b3bd-0310-b5e0-8ef037075253>
Mon, 12 Jun 2006 14:52:15 +0000 (14:52 +0000)
committercompudj <compudj@04897980-b3bd-0310-b5e0-8ef037075253>
Mon, 12 Jun 2006 14:52:15 +0000 (14:52 +0000)
git-svn-id: http://ltt.polymtl.ca/svn@1918 04897980-b3bd-0310-b5e0-8ef037075253

12 files changed:
ltt/branches/poly/lttv/lttv/filter.c
ltt/branches/poly/lttv/lttv/filter.h
ltt/branches/poly/lttv/lttv/print.c
ltt/branches/poly/lttv/lttv/state.c
ltt/branches/poly/lttv/lttv/state.h
ltt/branches/poly/lttv/modules/gui/controlflow/drawing.c
ltt/branches/poly/lttv/modules/gui/controlflow/eventhooks.c
ltt/branches/poly/lttv/modules/gui/controlflow/eventhooks.h
ltt/branches/poly/lttv/modules/gui/controlflow/processlist.c
ltt/branches/poly/lttv/modules/gui/controlflow/processlist.h
ltt/branches/poly/lttv/modules/gui/filter/filter.c
ltt/branches/poly/lttv/modules/text/textFilter.c

index 78882d6966553603660c0caef24ae0f546cc7df6..6337cd2c89f9a6b69b62035d65c86e56e7dda6ab 100644 (file)
@@ -52,6 +52,7 @@
  *    |->creation_time (LttTime)
  *    |->insertion_time (LttTime)
  *    |->process_name (String, converted to GQuark)
+ *    |->thread_brand (String, converted to GQuark)
  *    |->execution_mode (LttvExecutionMode)
  *    |->execution_submode (LttvExecutionSubmode)
  *    |->process_status (LttvProcessStatus)
@@ -164,6 +165,7 @@ lttv_simple_expression_assign_field(GPtrArray* fp, LttvSimpleExpression* se) {
      *  state.creation_time
      *  state.insertion_time
      *  state.process_name
+     *  state.thread_brand
      *  state.execution_mode
      *  state.execution_submode
      *  state.process_status
@@ -186,6 +188,9 @@ lttv_simple_expression_assign_field(GPtrArray* fp, LttvSimpleExpression* se) {
     else if(!g_strcasecmp(f->str,"process_name") ) {
       se->field = LTTV_FILTER_STATE_P_NAME;
     }
+    else if(!g_strcasecmp(f->str,"thread_brand") ) {
+      se->field = LTTV_FILTER_STATE_T_BRAND;
+    }
     else if(!g_strcasecmp(f->str,"execution_mode") ) {
       se->field = LTTV_FILTER_STATE_EX_MODE;
     }
@@ -276,6 +281,7 @@ lttv_simple_expression_assign_operator(LttvSimpleExpression* se, LttvExpressionO
      case LTTV_FILTER_TRACE_NAME:
      case LTTV_FILTER_TRACEFILE_NAME:
      case LTTV_FILTER_STATE_P_NAME:
+     case LTTV_FILTER_STATE_T_BRAND:
      case LTTV_FILTER_EVENT_NAME:
      case LTTV_FILTER_EVENT_FACILITY:
      case LTTV_FILTER_STATE_EX_MODE:
@@ -436,6 +442,7 @@ lttv_simple_expression_assign_value(LttvSimpleExpression* se, char* value) {
      case LTTV_FILTER_TRACE_NAME:
      case LTTV_FILTER_TRACEFILE_NAME:
      case LTTV_FILTER_STATE_P_NAME:
+     case LTTV_FILTER_STATE_T_BRAND:
      case LTTV_FILTER_EVENT_NAME:
      case LTTV_FILTER_EVENT_FACILITY:
      case LTTV_FILTER_STATE_EX_MODE:
@@ -548,6 +555,7 @@ lttv_struct_type(gint ft) {
         case LTTV_FILTER_STATE_CT:
         case LTTV_FILTER_STATE_IT:
         case LTTV_FILTER_STATE_P_NAME:
+       case LTTV_FILTER_STATE_T_BRAND:
         case LTTV_FILTER_STATE_EX_MODE:
         case LTTV_FILTER_STATE_EX_SUBMODE:
         case LTTV_FILTER_STATE_P_STATUS:
@@ -1936,15 +1944,19 @@ lttv_filter_tree_parse_branch(
             }
             break;
         case LTTV_FILTER_STATE_P_NAME:
-            /*
-             * All 'unnamed' for the moment  
-             */
             if(state == NULL) return TRUE;
             else {
               GQuark quark = state->name;
               return se->op((gpointer)&quark,v);
             }
             break;
+       case LTTV_FILTER_STATE_T_BRAND:
+            if(state == NULL) return TRUE;
+            else {
+              GQuark quark = state->brand;
+              return se->op((gpointer)&quark,v);
+            }
+            break;
         case LTTV_FILTER_STATE_EX_MODE:
             if(state == NULL) return TRUE;
             else return se->op((gpointer)&state->state->t,v);
index d93a15512fd213045060ad5d0c940d8c371e6e03..cc25dfb158d2460ab89a8ccb4b8d02a1faec2ed9 100644 (file)
@@ -104,6 +104,7 @@ enum _LttvFieldType {
   LTTV_FILTER_STATE_CT,               /**< state.creation_time (double) */
   LTTV_FILTER_STATE_IT,               /**< state.insertion_time (double) */
   LTTV_FILTER_STATE_P_NAME,           /**< state.process_name (char*) */
+  LTTV_FILTER_STATE_T_BRAND,          /**< state.thread_brand (char*) */
   LTTV_FILTER_STATE_EX_MODE,          /**< state.execution_mode (LttvExecutionMode) */
   LTTV_FILTER_STATE_EX_SUBMODE,       /**< state.execution_submode (LttvExecutionSubmode) */
   LTTV_FILTER_STATE_P_STATUS,         /**< state.process_status (LttvProcessStatus) */
index f06c527c5a28e8d1346b062a1e4553639f3c6851..953326ab39004090ec2ecda609d03cbaf15cc5ad 100644 (file)
@@ -250,8 +250,9 @@ void lttv_event_to_string(LttEvent *e, GString *s,
         g_quark_to_string(ltt_tracefile_name(tfs->parent.tf)),
         cpu);
     /* Print the process id and the state/interrupt type of the process */
-    g_string_append_printf(s,", %u, %s, %u, 0x%llX, %s", process->pid,
+    g_string_append_printf(s,", %u, %s, %s, %u, 0x%llX, %s", process->pid,
         g_quark_to_string(process->name),
+        g_quark_to_string(process->brand),
         process->ppid, process->current_function,
         g_quark_to_string(process->state->t));
   }
index 9b3c0822586e1c6029b4e3f6a8fb54da583f20e8..a3a3102a50039a3adbb2e7c58003bbd07c5f2046 100644 (file)
@@ -61,7 +61,8 @@ GQuark
     LTT_EVENT_EXEC,
     LTT_EVENT_ENUM_PROCESS_STATE,
                LTT_EVENT_FUNCTION_ENTRY,
-               LTT_EVENT_FUNCTION_EXIT;
+               LTT_EVENT_FUNCTION_EXIT,
+               LTT_EVENT_THREAD_BRAND;
 
 /* Fields Quarks */
 
@@ -99,6 +100,7 @@ LttvExecutionSubmode
 
 LttvProcessStatus
   LTTV_STATE_UNNAMED,
+  LTTV_STATE_UNBRANDED,
   LTTV_STATE_WAIT_FORK,
   LTTV_STATE_WAIT_CPU,
   LTTV_STATE_EXIT,
@@ -420,10 +422,11 @@ static void write_process_state(gpointer key, gpointer value,
 
   process = (LttvProcessState *)value;
   fprintf(fp,
-"  <PROCESS CORE=%p PID=%u PPID=%u TYPE=\"%s\"CTIME_S=%lu CTIME_NS=%lu NAME=\"%s\" CPU=\"%u\">\n",
+"  <PROCESS CORE=%p PID=%u PPID=%u TYPE=\"%s\"CTIME_S=%lu CTIME_NS=%lu NAME=\"%s\" BRAND=\"%s\" CPU=\"%u\">\n",
       process, process->pid, process->ppid, g_quark_to_string(process->type),
                        process->creation_time.tv_sec,
       process->creation_time.tv_nsec, g_quark_to_string(process->name),
+      g_quark_to_string(process->brand),
       process->cpu);
 
   for(i = 0 ; i < process->execution_stack->len; i++) {
@@ -1105,10 +1108,11 @@ static void pop_state(LttvTracefileState *tfs, LttvExecutionMode t)
     g_info("process state has %s when pop_int is %s\n",
                    g_quark_to_string(process->state->t),
                    g_quark_to_string(t));
-    g_info("{ %u, %u, %s, %s }\n",
+    g_info("{ %u, %u, %s, %s, %s }\n",
                    process->pid,
                    process->ppid,
                    g_quark_to_string(process->name),
+                   g_quark_to_string(process->brand),
                    g_quark_to_string(process->state->s));
     return;
   }
@@ -1193,6 +1197,7 @@ lttv_state_create_process(LttvTraceState *tcs, LttvProcessState *parent,
   process->pid = pid;
   process->cpu = cpu;
   process->name = name;
+  process->brand = LTTV_STATE_UNBRANDED;
   //process->last_cpu = tfs->cpu_name;
   //process->last_cpu_index = ltt_tracefile_num(((LttvTracefileContext*)tfs)->tf);
        process->type = LTTV_STATE_USER_THREAD;
@@ -1483,10 +1488,11 @@ static void pop_function(LttvTracefileState *tfs, guint64 funcptr)
         tfs->parent.timestamp.tv_sec, tfs->parent.timestamp.tv_nsec);
     g_info("process state has %llu when pop_function is %llu\n",
                    process->current_function, funcptr);
-    g_info("{ %u, %u, %s, %s }\n",
+    g_info("{ %u, %u, %s, %s, %s }\n",
                    process->pid,
                    process->ppid,
                    g_quark_to_string(process->name),
+                   g_quark_to_string(process->brand),
                    g_quark_to_string(process->state->s));
     return;
   }
@@ -1777,6 +1783,22 @@ static gboolean process_exec(void *hook_data, void *call_data)
   return FALSE;
 }
 
+static gboolean thread_brand(void *hook_data, void *call_data)
+{
+  LttvTracefileState *s = (LttvTracefileState *)call_data;
+  LttvTraceState *ts = (LttvTraceState*)s->parent.t_context;
+  LttEvent *e = ltt_tracefile_get_event(s->parent.tf);
+  LttvTraceHookByFacility *thf = (LttvTraceHookByFacility *)hook_data;
+  gchar *name;
+  guint cpu = s->cpu;
+  LttvProcessState *process = ts->running_process[cpu];
+
+  name = ltt_event_get_string(e, thf->f1);
+  process->brand = g_quark_from_string(name);
+
+  return FALSE;
+}
+
 static gboolean enum_process_state(void *hook_data, void *call_data)
 {
   LttvTracefileState *s = (LttvTracefileState *)call_data;
@@ -1916,8 +1938,8 @@ void lttv_state_add_event_hooks(LttvTracesetState *self)
     /* Find the eventtype id for the following events and register the
        associated by id hooks. */
 
-    hooks = g_array_sized_new(FALSE, FALSE, sizeof(LttvTraceHook), 17);
-    hooks = g_array_set_size(hooks, 17); // Max possible number of hooks.
+    hooks = g_array_sized_new(FALSE, FALSE, sizeof(LttvTraceHook), 18);
+    hooks = g_array_set_size(hooks, 18); // Max possible number of hooks.
                hn = 0;
 
     ret = lttv_trace_find_hook(ts->parent.t,
@@ -2005,6 +2027,12 @@ void lttv_state_add_event_hooks(LttvTracesetState *self)
         process_exec, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
                if(ret) hn--;
 
+    ret = lttv_trace_find_hook(ts->parent.t,
+        LTT_FACILITY_USER_GENERIC, LTT_EVENT_THREAD_BRAND,
+        LTT_FIELD_NAME, 0, 0,
+        thread_brand, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
+               if(ret) hn--;
+
      /* statedump-related hooks */
     ret = lttv_trace_find_hook(ts->parent.t,
         LTT_FACILITY_STATEDUMP, LTT_EVENT_ENUM_PROCESS_STATE,
@@ -2658,6 +2686,7 @@ lttv_tracefile_state_get_type(void)
 static void module_init()
 {
   LTTV_STATE_UNNAMED = g_quark_from_string("UNNAMED");
+  LTTV_STATE_UNBRANDED = g_quark_from_string("UNBRANDED");
   LTTV_STATE_MODE_UNKNOWN = g_quark_from_string("MODE_UNKNOWN");
   LTTV_STATE_USER_MODE = g_quark_from_string("USER_MODE");
   LTTV_STATE_SYSCALL = g_quark_from_string("SYSCALL");
@@ -2714,6 +2743,7 @@ static void module_init()
   LTT_EVENT_ENUM_PROCESS_STATE  = g_quark_from_string("enumerate_process_state");
   LTT_EVENT_FUNCTION_ENTRY  = g_quark_from_string("function_entry");
   LTT_EVENT_FUNCTION_EXIT  = g_quark_from_string("function_exit");
+  LTT_EVENT_THREAD_BRAND  = g_quark_from_string("thread_brand");
 
 
   LTT_FIELD_SYSCALL_ID    = g_quark_from_string("syscall_id");
index 62f8e3ab28c11bd010091260e7424f6830862bf6..b299c201ad143149ccdcee90c6e4fcb72cf1ba90 100644 (file)
@@ -82,7 +82,8 @@ extern GQuark
     LTT_EVENT_EXEC,
                LTT_EVENT_ENUM_PROCESS_STATE,
                LTT_EVENT_FUNCTION_ENTRY,
-               LTT_EVENT_FUNCTION_EXIT;
+               LTT_EVENT_FUNCTION_EXIT,
+               LTT_EVENT_THREAD_BRAND;
 
 /* Fields Quarks */
 
@@ -179,6 +180,7 @@ typedef GQuark LttvProcessStatus;
 
 extern LttvProcessStatus
   LTTV_STATE_UNNAMED,
+  LTTV_STATE_UNBRANDED,
   LTTV_STATE_WAIT_FORK,
   LTTV_STATE_WAIT_CPU,
   LTTV_STATE_EXIT,
@@ -208,6 +210,7 @@ typedef struct _LttvProcessState {
   LttTime creation_time;
   LttTime insertion_time;
   GQuark name;
+  GQuark brand;
   GQuark pid_time;
   GArray *execution_stack;         /* Array of LttvExecutionState */
   LttvExecutionState *state;       /* Top of interrupt stack */
index 9aec7623cb8101159b6676618b48fa1f0293b19f..224d3ee8456b23e87c989ed7e73b7d879d061253 100644 (file)
@@ -221,7 +221,7 @@ void drawing_data_request(Drawing_t *drawing,
          associated by id hooks. */
 
       hooks = g_array_new(FALSE, FALSE, sizeof(LttvTraceHook));
-      hooks = g_array_set_size(hooks, 16);
+      hooks = g_array_set_size(hooks, 17);
       before_hn = after_hn = 0;
 
       /* before hooks */
@@ -399,6 +399,14 @@ void drawing_data_request(Drawing_t *drawing,
           &g_array_index(hooks, LttvTraceHook, after_hn++));
       if(ret) after_hn--;
 
+      ret = lttv_trace_find_hook(ts->parent.t,
+          LTT_FACILITY_USER_GENERIC, LTT_EVENT_THREAD_BRAND,
+          LTT_FIELD_NAME, 0, 0,
+          after_user_generic_thread_brand_hook,
+          events_request,
+          &g_array_index(hooks, LttvTraceHook, after_hn++));
+      if(ret) after_hn--;
+
       ret = lttv_trace_find_hook(ts->parent.t,
           LTT_FACILITY_STATEDUMP, LTT_EVENT_ENUM_PROCESS_STATE,
           LTT_FIELD_PID, LTT_FIELD_PARENT_PID, LTT_FIELD_NAME,
index 15739dd503826ee5f954300cd3f592b7bd44c97a..cc4a553be7d65ca49a047fc05e0755506730bee1 100644 (file)
@@ -399,6 +399,7 @@ int before_schedchange_hook(void *hook_data, void *call_data)
             &birth,
             tfc->t_context->index,
             process->name,
+            process->brand,
             &pl_height,
             &process_info,
             &hashed_process_data);
@@ -555,6 +556,7 @@ int before_schedchange_hook(void *hook_data, void *call_data)
             &birth,
             tfc->t_context->index,
             process->name,
+            process->brand,
             &pl_height,
             &process_info,
             &hashed_process_data);
@@ -775,6 +777,7 @@ int after_schedchange_hook(void *hook_data, void *call_data)
         &birth,
         tfc->t_context->index,
         process_in->name,
+        process_in->brand,
         &pl_height,
         &process_info,
         &hashed_process_data_in);
@@ -898,6 +901,7 @@ int before_execmode_hook(void *hook_data, void *call_data)
           &birth,
           tfc->t_context->index,
           process->name,
+          process->brand,
           &pl_height,
           &process_info,
           &hashed_process_data);
@@ -1087,6 +1091,7 @@ int before_process_exit_hook(void *hook_data, void *call_data)
           &birth,
           tfc->t_context->index,
           process->name,
+          process->brand,
           &pl_height,
           &process_info,
           &hashed_process_data);
@@ -1281,6 +1286,7 @@ int before_process_release_hook(void *hook_data, void *call_data)
           &birth,
           tfc->t_context->index,
           process->name,
+          process->brand,
           &pl_height,
           &process_info,
           &hashed_process_data);
@@ -1473,6 +1479,7 @@ int after_process_fork_hook(void *hook_data, void *call_data)
         &birth,
         tfc->t_context->index,
         process_child->name,
+        process_child->brand,
         &pl_height,
         &process_info,
         &hashed_process_data_child);
@@ -1591,6 +1598,7 @@ int after_process_exit_hook(void *hook_data, void *call_data)
           &birth,
           tfc->t_context->index,
           process->name,
+          process->brand,
           &pl_height,
           &process_info,
           &hashed_process_data);
@@ -1685,6 +1693,7 @@ int after_fs_exec_hook(void *hook_data, void *call_data)
           &birth,
           tfc->t_context->index,
           process->name,
+          process->brand,
           &pl_height,
           &process_info,
           &hashed_process_data);
@@ -1704,6 +1713,77 @@ int after_fs_exec_hook(void *hook_data, void *call_data)
 
 }
 
+/* Get the filename of the process to print */
+int after_user_generic_thread_brand_hook(void *hook_data, void *call_data)
+{
+  LttvTraceHookByFacility *thf = (LttvTraceHookByFacility*)hook_data;
+  EventsRequest *events_request = (EventsRequest*)thf->hook_data;
+  ControlFlowData *control_flow_data = events_request->viewer_data;
+
+  LttvTracefileContext *tfc = (LttvTracefileContext *)call_data;
+
+  LttvTracefileState *tfs = (LttvTracefileState *)call_data;
+
+  LttvTraceState *ts = (LttvTraceState *)tfc->t_context;
+
+  guint cpu = tfs->cpu;
+  LttvProcessState *process = ts->running_process[cpu];
+  g_assert(process != NULL);
+
+  guint pid = process->pid;
+
+  /* Well, the process_out existed : we must get it in the process hash
+   * or add it, and draw its items.
+   */
+   /* Add process to process list (if not present) */
+  guint pl_height = 0;
+  HashedProcessData *hashed_process_data = NULL;
+  ProcessList *process_list = control_flow_data->process_list;
+  LttTime birth = process->creation_time;
+  if(likely(process_list->current_hash_data[cpu] != NULL)) {
+    hashed_process_data = process_list->current_hash_data[cpu];
+  } else {
+    hashed_process_data = processlist_get_process_data(process_list,
+            pid,
+            process->cpu,
+            &birth,
+            tfc->t_context->index);
+    if(unlikely(hashed_process_data == NULL))
+    {
+      g_assert(pid == 0 || pid != process->ppid);
+      ProcessInfo *process_info;
+      /* Process not present */
+      Drawing_t *drawing = control_flow_data->drawing;
+      processlist_add(process_list,
+          drawing,
+          pid,
+          process->cpu,
+          process->ppid,
+          &birth,
+          tfc->t_context->index,
+          process->name,
+         process->brand,
+          &pl_height,
+          &process_info,
+          &hashed_process_data);
+        gtk_widget_set_size_request(drawing->drawing_area,
+                                    -1,
+                                    pl_height);
+        gtk_widget_queue_draw(drawing->drawing_area);
+    }
+    /* Set the current process */
+    process_list->current_hash_data[process->cpu] =
+                                               hashed_process_data;
+  }
+
+  processlist_set_brand(process_list, process->brand, hashed_process_data);
+
+  return 0;
+
+}
+
+
 /* after_event_enum_process_hook
  * 
  * Create the processlist entry for the child process. Put the last
@@ -1778,6 +1858,7 @@ int after_event_enum_process_hook(void *hook_data, void *call_data)
         &birth,
         tfc->t_context->index,
         process_in->name,
+        process_in->brand,
         &pl_height,
         &process_info,
         &hashed_process_data_in);
index d1d9714e5b48f9093235bdeb36515deb14c64cc1..aab74e9499ea034ce0cd495a41d80341cda38ae3 100644 (file)
@@ -94,6 +94,7 @@ int before_process_release_hook(void *hook_data, void *call_data);
 int after_process_exit_hook(void *hook_data, void *call_data);
 int after_process_fork_hook(void *hook_data, void *call_data);
 int after_fs_exec_hook(void *hook_data, void *call_data);
+int after_user_generic_thread_brand_hook(void *hook_data, void *call_data);
 int after_event_enum_process_hook(void *hook_data, void *call_data);
 
 #if 0
index 3c9a5dad43590ddab5ba0982f70ddc43f8fed3d5..d7145924ede42a176bcbfbf11d98802899c5bdf3 100644 (file)
@@ -350,6 +350,7 @@ ProcessList *processlist_construct(void)
 
   /* Create the Process list */
   process_list->list_store = gtk_list_store_new (  N_COLUMNS,
+              G_TYPE_STRING,
               G_TYPE_STRING,
               G_TYPE_UINT,
               G_TYPE_UINT,
@@ -425,7 +426,17 @@ ProcessList *processlist_construct(void)
     GTK_TREE_VIEW (process_list->process_list_widget), column);
   
   process_list->button = column->button;
-  
+  column = gtk_tree_view_column_new_with_attributes ( "Brand",
+                renderer,
+                "text",
+                BRAND_COLUMN,
+                NULL);
+  gtk_tree_view_column_set_alignment (column, 0.0);
+  gtk_tree_view_column_set_fixed_width (column, 45);
+  gtk_tree_view_append_column (
+    GTK_TREE_VIEW (process_list->process_list_widget), column);
+
   column = gtk_tree_view_column_new_with_attributes ( "PID",
                 renderer,
                 "text",
@@ -558,6 +569,14 @@ void processlist_set_name(ProcessList *process_list,
         -1);
 }
 
+void processlist_set_brand(ProcessList *process_list,
+    GQuark brand,
+    HashedProcessData *hashed_process_data)
+{
+  gtk_list_store_set (  process_list->list_store, &hashed_process_data->y_iter,
+        BRAND_COLUMN, g_quark_to_string(brand),
+        -1);
+}
 void processlist_set_ppid(ProcessList *process_list,
     guint ppid,
     HashedProcessData *hashed_process_data)
@@ -576,6 +595,7 @@ int processlist_add(  ProcessList *process_list,
       LttTime *birth,
       guint trace_num,
       GQuark name,
+      GQuark brand,
       guint *height,
       ProcessInfo **pm_process_info,
       HashedProcessData **pm_hashed_process_data)
@@ -617,6 +637,7 @@ int processlist_add(  ProcessList *process_list,
 
   gtk_list_store_set (  process_list->list_store, &hashed_process_data->y_iter,
         PROCESS_COLUMN, g_quark_to_string(name),
+        BRAND_COLUMN, g_quark_to_string(brand),
         PID_COLUMN, pid,
         PPID_COLUMN, ppid,
         CPU_COLUMN, cpu,
index e6c05bd44d9f8710dd69b892edd29ff6ac219d14..daffefaf3f934b60543e8cadea69c419a3a8f9dc 100644 (file)
@@ -46,6 +46,7 @@
 enum
 {
   PROCESS_COLUMN,
+  BRAND_COLUMN,
   PID_COLUMN,
   PPID_COLUMN,
   CPU_COLUMN,
@@ -133,7 +134,7 @@ void processlist_clear(ProcessList *process_list);
 /* CPU num is only used for PID 0 */
 int processlist_add(ProcessList *process_list, Drawing_t * drawing, 
     guint pid, guint cpu, guint ppid,
-    LttTime *birth, guint trace_num, GQuark name, guint *height,
+    LttTime *birth, guint trace_num, GQuark name, GQuark brand, guint *height,
     ProcessInfo **process_info,
     HashedProcessData **hashed_process_data);
 // out : success (0) and height
@@ -145,6 +146,10 @@ void processlist_set_name(ProcessList *process_list,
     GQuark name,
     HashedProcessData *hashed_process_data);
 
+void processlist_set_brand(ProcessList *process_list,
+    GQuark brand,
+    HashedProcessData *hashed_process_data);
+
 /* Set the ppid of a process */
 void processlist_set_ppid(ProcessList *process_list,
     guint ppid,
index 8d1232b0016fe4fbf3d797b75dc0d5fcf646903e..dab7d1f3125ac305d4a4a1a2babdf8721d209cf3 100644 (file)
@@ -195,6 +195,7 @@ gui_filter(Tab *tab)
   g_ptr_array_add(fvd->f_field_options,(gpointer) g_string_new("tracefile.name"));
   g_ptr_array_add(fvd->f_field_options,(gpointer) g_string_new("trace.name"));
   g_ptr_array_add(fvd->f_field_options,(gpointer) g_string_new("state.process_name"));
+  g_ptr_array_add(fvd->f_field_options,(gpointer) g_string_new("state.thread_brand"));
   g_ptr_array_add(fvd->f_field_options,(gpointer) g_string_new("state.pid"));
   g_ptr_array_add(fvd->f_field_options,(gpointer) g_string_new("state.ppid"));
   g_ptr_array_add(fvd->f_field_options,(gpointer) g_string_new("state.creation_time"));
index 41e478d2d330cc632ae443d7ad41e57eed39681f..6934011c1dd344c49a3b6afcaaa9209994454a3d 100644 (file)
@@ -139,12 +139,13 @@ void filter_list_commands(void *hook_data) {
   g_print("state.pid (integer)\n");
   g_print("state.ppid (integer)\n");
   g_print("state.creation_time (double)\n");
-  g_print("trace.insertion_time (double)\n");
-  g_print("trace.process_name (string)\n");
-  g_print("trace.execution_mode (string)\n");
-  g_print("trace.execution_submode (string)\n");
-  g_print("trace.process_status (string)\n");
-  g_print("trace.cpu (string)\n\n");
+  g_print("state.insertion_time (double)\n");
+  g_print("state.process_name (string)\n");
+  g_print("state.thread_brand (string)\n");
+  g_print("state.execution_mode (string)\n");
+  g_print("state.execution_submode (string)\n");
+  g_print("state.process_status (string)\n");
+  g_print("state.cpu (string)\n\n");
   
   g_print("*** Possible operators ***\n");
   g_print("equal '='\n");
This page took 0.034115 seconds and 4 git commands to generate.