Come si fa a allegare automaticamente un debugger a un processo all'avvio processo su OS X?
-
21-09-2019 - |
Domanda
Ho un processo che genera un processo aiutante. A volte ho bisogno di eseguire il debug guasti start-up nel secondo processo.
In Windows, userei Image File Execution Options
o ntsd -o
. Tuttavia, non ho idea di come fare questo con gdb su OS X.
Soluzione
Utilizzare gdb --wait. Ad esempio, provare
gdb --wait TextEdit
dalla riga di comando, quindi lanciare TextEdit.
Altri suggerimenti
Non credo che si può avere lancio gdb nello stesso modo. Invece, eseguire il processo padre da dentro gdb o connettersi al processo in esecuzione prima che si biforca l'assistente off. C'è un'impostazione chiamata follow-fork-mode
che controlla che elaborano il debugger segue. Date un'occhiata a GDB manuale per una bella descrizione.
Se stai usando launchd per deporre le uova processi, poi c'è una chiave booleana WaitForDebugger
che va nel documento plist del lavoro. Se è sì, allora launchd attese (sorprendentemente!) Per il debugger prima di exec()
ing il lavoro.