Débogage de l'enfant après la fourche (suivez-fourche-mode enfant configuré)

Je suis du développement d'une application dont le parent fourches d'un enfant à traiter certaines tâches. Je rencontre un problème lorsque j'ai configuré gdb à suivre-fourche-mode enfant, mais après la fourche, après avoir atteint un point d'arrêt, il envoie un SIGTRAP, mais l'enfant d'une certaine manière se termine et envoyer SIGCHLD à la société mère.

J'ai configuré signal(SIGTRAP, SIG_IGN) avant fourche, donc ma compréhension est que l'enfant doit hériter et d'ignorer SIGTRAP lorsque le point d'arrêt est atteint, mais il ne se passe rien.

Merci de m'aider à comprendre cela si je suis incorrect.

Comment j'ai réussi à déboguer le processus de l'enfant?

  • "... après avoir atteint un point d'arrêt, il envoie un SIGTRAP ..." c'est ainsi que le débogueur est notifié sur le point d'arrêt. "... l'enfant en quelque sorte se termine ..." termine normalement ou anormalement? Vous pouvez utiliser WIFEXITED(status) sur la valeur retournée par wait[...]([...,]&status[, ...]) dans le parent de vérifier cela. Voir man 3 wait pour plus de détails.
InformationsquelleAutor ihsan | 2013-02-28