¿Cómo depuro el proceso hijo después de fork() en gdb?
(1)
Después de llamar a fork, el proceso actual llamará exit(0)
.
Pero el niño continuará.
switch(fork())
{
case -1:
exit(1);
case 0:
//child process,continue
break;
default:
//the current process,exit
exit(0);
}
¿Cómo puedo continuar depurando el proceso hijo en este caso?
Mira this Utilizar:
set follow-fork-mode <mode>
Establezca la respuesta del depurador a una llamada de programa de fork o vfork. Una llamada a fork o vfork crea un nuevo proceso. El argumento <mode>
puede ser:
parent
: el proceso original se depura después de una bifurcación. El proceso hijo se ejecuta sin obstáculos. Este es el valor predeterminado.
child
: el nuevo proceso se depura después de una bifurcación. El proceso padre se ejecuta sin impedimentos.