tmp = find_process_tid(ctx, tid, NULL);
if (tmp && tmp->pid == pid)
return tmp;
- return add_proc(ctx, tid, "Unknown", timestamp, hostname);
+ return add_proc(ctx, tid, NULL, timestamp, hostname);
}
void add_thread(struct processtop *parent, struct processtop *thread)
if (tmpfile != NULL) {
memcpy(newfile, tmpfile, sizeof(struct files));
- newfile->name = strdup(tmpfile->name);
+ if (tmpfile->name)
+ newfile->name = strdup(tmpfile->name);
+ else
+ newfile->name = NULL;
newfile->ref = new;
g_ptr_array_add(new->process_files_table,
newfile);
struct processtop *proc;
unsigned long timestamp;
int64_t pid, tid, ppid, vtid, vpid, vppid;
- char *procname, *hostname = NULL;
+ char *procname = NULL, *hostname = NULL;
timestamp = bt_ctf_get_timestamp(call_data);
if (timestamp == -1ULL)
}
}
}
+
+char *lookup_procname(const char *procname)
+{
+ if (!procname || !global_procname_list)
+ return NULL;
+
+ return g_hash_table_lookup(global_procname_list, (gpointer) procname);
+}
+
+char *add_procname_list(char *procname, int filter)
+{
+ char *proc;
+
+ proc = lookup_procname(procname);
+ if (proc)
+ return proc;
+
+ proc = strdup(procname);
+ g_hash_table_insert(global_procname_list,
+ (gpointer) procname, (gpointer) procname);
+
+ return proc;
+}