Inicie o GDB usando um PID
Pergunta
Em geral eu vejo o processo pid
que está em execução em segundo plano e inicie o DBX nesse processo usando o comando dbx -a <pid>
Da mesma forma, como eu poderia fazer isso usando o GDB?
Solução
Existem duas maneiras.
Na linha de comando, inclua o PID como argumento após o nome executável:
gdb /path/to/prog PID
De dentro do GDB, você pode usar o comando de anexo:
gdb /path/to/prog
gdb> attach PID
Embora a especificação na linha de comando seja mais concisa, há um pequeno risco de que, se você tiver um arquivo principal com um nome que é o mesmo que o PID (ou seja, para o PID 2345, o arquivo principal teria que ser nomeado "2345 ") Então o GDB abrirá o arquivo principal. É certo que a chance de isso acontecer é minúscula.
Outras dicas
Além do anterior, você pode usar diretamente
gdb -p <pid>
Na página do homem do GDB:
Em vez disso, você pode especificar um ID do processo como um segundo argumento, se deseja depurar um processo de execução:
gdb program 1234