J'ai un processus qui abrite un processus d'assistance. Parfois, j'ai besoin de déboguer des échecs de démarrage dans le deuxième processus. P>
sur Windows, j'utiliserais des options d'exécution de fichier d'images code> ou
ntsd -o code>. Cependant, je n'ai aucune idée de la façon de faire cela avec GDB sur OS X. P>
3 Réponses :
Je ne pense pas que vous puissiez avoir un lancement de GDB de la même manière. P>
Au lieu de cela, exécutez votre processus parent à partir de GDB ou joignez-le au processus en cours d'exécution avant qu'il fourche l'assistant. Il y a un paramètre appelé mode de suivi code> que les contrôles qui traitent le débogueur suivent. Jetez un coup d'œil à Le manuel GDB pour une belle description. p>
Ah, qui semble en effet quelque chose dont j'aurais besoin. Il semble que le processus parent ne soit plus débogué après le VFORK (), mais je vais l'essayer. Ce serait triste, cependant, si c'est le cas.
Eh bien, c'était une acceptation rapide. :-) Voir ma réponse. gdb - lui fait ce que tu veux.
@jeff: Vous pouvez toujours attacher à nouveau au parent avec une autre instance de GDB. Je ne suis pas sûr de se détacher du parent ou non. Cela fait longtemps que j'ai débogué un module Apache à l'aide de cela.
Utilisez gdb --wait em>. Par exemple, essayez de la ligne de commande, puis lancez TextEdit. P> p>
Avec lldb, il est lldb --wait-fortatata-nom-textedit code>
Si vous utilisez launchd sur les processus d'apparition, alors il y a un waitfordebugger Code> Boolean Key qui part dans le travail fichier p-list . Si c'est oui, alors Lanckd attend (étonnamment!) Pour le débogueur avant
EXEC () code> Ing du travail. P>
Aussi intéressant. Comment utilise-t-on le lancé pour apparaître un processus? J'utilise Fork () et EXEC ().
Je vais laisser Quinn répondre pour moi: développeur.apple.com/mac /Library/technotes/tn2005/tn2083.html Découvrez également la page d'homme pour LaundD.Plist (5)