Como se conectar automaticamente um depurador a um processo no processo inicia no OS X?
-
21-09-2019 - |
Pergunta
Eu tenho um processo que gera um processo auxiliar. Às vezes, preciso depurar falhas de inicialização no segundo processo.
No Windows, eu usaria Image File Execution Options
, ou ntsd -o
. No entanto, não tenho idéia de como fazer isso com o GDB no OS X.
Solução
Use GDB -Wait. Por exemplo, tente
gdb --wait TextEdit
Na linha de comando, inicie o texto.
Outras dicas
Eu não acho que você possa lançar o GDB da mesma maneira. Em vez disso, execute seu processo pai de dentro do GDB ou anexe ao processo em execução antes que ele force o ajudante. Existe um cenário chamado follow-fork-mode
Isso controla qual processo segue o depurador. Dar uma olhada em o manual do GDB Para uma boa descrição.
Se você está usando os processos de lançamento para gerar, então há um WaitForDebugger
Chave booleana, que entra no arquivo plist do trabalho. Se for sim, então o Launchd espera (surpreendentemente!) Para o depurador antes exec()
no trabalho.