Como encontro símbolos de depuração desanexados para a descompilação?

1

Estou tentando depurar um segfault sem codificar um binário em um caminho não padrão (especificamente em / frs / alg / alg / bin /) e estava percebendo que o código decompilado tem menos símbolos do que ao depurar em gdb. Estou assumindo que os símbolos de depuração estão separados, mas onde devo procurar para encontrá-los?

    
por hildred 12.10.2017 / 23:06

1 resposta

2

Presumivelmente, o binário tem informações de depuração desanexadas ; se gdb é capaz de encontrar isso sem qualquer configuração em particular, deve estar em um dos

  • um arquivo baseado em build-id em /usr/lib/debug/.build-id ;
  • um arquivo .debug ao lado do binário;
  • um arquivo .debug em /frs/alg/alg/bin/.debug ;
  • um arquivo .debug em /usr/lib/debug/frs/alg/alg/bin .

O binário pode ter um link de depuração apontando para a informação desanexada; procure por uma seção .gnu_debuglink no binário. Para encontrar seu ID de compilação (se houver), procure uma seção chamada .note.gnu.build-id ou algo semelhante nessas linhas.

    
por 12.10.2017 / 23:45

Tags