Comment peut-on automatiquement un débogueur attach à un processus au démarrage du processus sur OS X?
-
21-09-2019 - |
Question
J'ai un processus qui génère un processus d'aide. Parfois, je dois déboguer les échecs de démarrage dans le deuxième processus.
Sous Windows, j'utiliser Image File Execution Options
ou ntsd -o
. Cependant, je ne sais pas comment faire avec gdb sur OS X.
La solution
Utilisez gdb --wait. Par exemple, essayez
gdb --wait TextEdit
à partir de la ligne de commande, puis lancer TextEdit.
Autres conseils
Je ne pense pas que vous pouvez avoir gdb lancement de la même manière. , Exécutez plutôt votre processus parent de l'intérieur gdb ou joindre au processus en cours d'exécution avant qu'il bifurque l'aide. Il y a un paramètre appelé follow-fork-mode
qui contrôle processus que le débogueur suit. Jetez un oeil à Manuel GDB pour une description agréable.
Si vous utilisez launchd pour appeler le processus, puis il y a une clé booléenne WaitForDebugger
qui va dans le fichier plist du travail. Si c'est oui, alors Launchd attend (étonnamment!) Pour le débogueur avant exec()
ing le travail.