Solía straceadjuntar a un proceso brevemente. El proceso creó 90 hilos. Cuando encontré el hilo ofensivo, tuve que buscar tediosamente el hilo principal, luego el hilo abuelo, y así sucesivamente hasta el proceso raíz.
¿Existe algún truco o herramienta para descubrir rápidamente qué hilo creó otro? O mejor aún, imprimir el árbol de las creaciones de hilo como pstree?
                    
                        linux
                                multithreading
                                strace
                                
                    
                    
                        proyectos
fuente
                
                fuente

Respuestas:
strace -fpara rastrear el proceso hijo que esfork()ed.fuente
No veo una forma fácil:
Puede usar la
-ffopción con-o filenamepara producir varios archivos (uno por pid).p.ej:
eso le ayudaría a ver qué padre creó qué. Tal vez eso te ayude, al menos entonces podrías buscar hacia atrás.
fuente
Hay un script de perl llamado
strace-graph. Aquí hay una versión de github . Está empaquetado con versiones de compiladores crosstool-ng . Me funciona incluso si usé multiplataforma.Caja ARM Linux.
Caja Linux X86_64.
La salida se puede utilizar para ayudar a navegar por el registro de seguimiento principal.
fuente
Para capturar tráfico para un solo proceso, puede usarlo
strace, como sugirió @stackmate.o enviarlo a un archivo.
-fpara todos los procesos bifurcados,-spara imprimir el tamaño de la cadena y-opara volcar la salida a un archivo.fuente