debugging threaded apps running under a clone(CLONE_NEWPID)

From: Cedric Le Goater
Date: Fri Feb 20 2009 - 11:57:13 EST


Hello !

to debug threaded apps, gdb uses a special libthread_db which seeks in the
symbols of the exec the list of running threads. This list contains the glibc
'struct pthread' descriptor with pids and tids which values are relative
to the namespace in which the threads were created.

unless you run gdb in the same pid namespace, gdb will not see any thread
in the debugged app. this is frustrating for some scenarios and some
support from the kernel would be needed to address this issue. Here
are some ideas :

. enter a pid namespace. hard.

. expose the pid numbers of a task in its pid namespaces, through some
ways like /proc/self/stat or /proc/self/pids and modify gdb to make
the conversion.

How would you do it ?

Thanks,

C.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/