Wie findet man einen Debugger automatisch an einen Prozess beim Prozess an OS X?
-
21-09-2019 - |
Frage
Ich habe einen Prozess, der einen Helferprozess hervorbringt. Manchmal muss ich im zweiten Prozess Startfehler debuggen.
Unter Windows würde ich verwenden Image File Execution Options
, oder ntsd -o
. Ich habe jedoch keine Ahnung, wie ich dies mit GDB unter OS X machen soll.
Lösung
Verwenden Sie GDB -Wait. Versuchen Sie zum Beispiel
gdb --wait TextEdit
Starten Sie dann aus der Befehlszeile textedit.
Andere Tipps
Ich glaube nicht, dass Sie auf die gleiche Weise GDB -Start haben können. Führen Sie stattdessen Ihren übergeordneten Vorgang von GDB aus oder fügen Sie den Auslaufprozess vor, bevor er den Helfer ausgab. Es wird eine Einstellung genannt follow-fork-mode
Das steuert, welcher Prozess der Debugger folgt. Sich ansehen Das GDB -Handbuch für eine schöne Beschreibung.
Wenn Sie Launchd verwenden, um Prozesse zu laichen, gibt es eine WaitForDebugger
Boolean Key, der in der Plist -Datei des Jobs liegt. Wenn es ja ist, dann wartet Launchd (überraschend!) Für den Debugger schon einmal exec()
den Job machen.