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?

Foi útil?

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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top