Tengo una aplicación C linux (A) que genera otro proceso (P) cuando se inicia. Cuando quiero depurar PI inicio A como de costumbre y me conecto con ddd/gdb a P.¿Cómo depurar el punto de entrada del proceso fork-exec en GDB?
Problemas aparecen cuando quiero depurar el punto de entrada (inicio de main) de P. Si sigo el enfoque habitual cuando Conecto el depurador a P ya es tarde. La solución que encontré fue insertar un sueño al principio de la parte principal de P, así que tengo tiempo para conectarme con gdb, pero esta no es una solución muy elegante.
También he intentado usar asm("int $3")
pero parece que no funciona.
¿Tiene alguna idea de cómo podría resolver este problema? (preferiblemente sin alterar el código de A o P)
gdbserver permite la depuración remota pero no resuelve el problema en cuestión, que es más un caso de cómo GDB sigue fork/clone. –
No creo que este sea un caso de depuración remota. Se trata más sobre qué proceso sigue gdb en un tenedor. –