These would cause mysterious new processes to show up.
static void
process_fork (Collector *collector, fork_event_t *fork)
{
- d_print ("ppid: %d pid: %d ptid: %d tid %d",
+ g_print ("ppid: %d pid: %d ptid: %d tid %d\n",
fork->ppid, fork->pid, fork->ptid, fork->tid);
tracker_add_fork (collector->tracker, fork->ppid, fork->pid);
process_t *parent = g_hash_table_lookup (
state->processes_by_pid, GINT_TO_POINTER (GET_PID (fork->header)));
+ if (GET_PID (fork->header) == fork->child_pid)
+ {
+ /* Just a new thread being spawned */
+ return;
+ }
+
#if 0
if (parent)
#endif
#endif
process->pid = fork->child_pid;
- process->comm = g_strdup (parent? parent->comm : "<unknown>");
+
+ if (parent)
+ process->comm = g_strdup (parent->comm);
+ else
+ process->comm = g_strdup_printf ("<pid %d>", fork->child_pid);
+
process->maps = g_ptr_array_new ();
if (parent)