Como instalar símbolos de depuração para pacotes instalados?

7

Eu tento ver como os programas funcionam, executando-os pelo depurador 'Qt Creator'. Para uma melhor orientação, gostaria de ver também os utilitários do sistema (core) totalmente na janela de pilha de chamadas, como eu sou usado a partir do MS Visual Studio 6.0, não apenas para ver o seu código assembly. Para os utilitários, o depurador 'Qt Creator' exibe apenas que seus símbolos de depuração não estão disponíveis. (Às vezes, o sistema gera relatórios de bugs para seus desenvolvedores; o diálogo de relatório de bug solicitou a instalação desses símbolos apenas para um programa específico.) Como posso obter os principais símbolos de depuração? (sem traduzir o Ubuntu inteiro) Eu uso o 'Update Manager' para instalar atualizações regularmente. Meu

O diretório
/sys/kernel/debug/x86
contém apenas um arquivo vazio. Eu não o encontrei no 'Ubuntu software center' nem vejo se alguns dos pacotes no link o que eu procuro.) Obrigado!     
por Tomáš Pečený 23.06.2014 / 18:31

3 respostas

8

Pacotes no Ubuntu têm seus símbolos de depuração armazenados em um repositório separado. Para baixar esses símbolos de depuração, execute (copie e cole):

printf "deb http://ddebs.ubuntu.com %s main restricted universe multiverse\n" $(lsb_release -cs){,-updates,-security,-proposed} | \
 sudo tee -a /etc/apt/sources.list.d/ddebs.list

para adicionar os links de repo em /etc/apt/sources.list.d/ddebs.list (Isso facilita a remoção do repo). Como alternativa, você também pode copiar cada um dos links deb em Fontes de Software e adicioná-los a partir dele (Observe que você provavelmente precisará substituir $(lsb_release -cs) pela versão do Ubuntu que está sendo executada).

Para fazer o download dos símbolos de depuração para package , basta instalar package-dbgsym ou, em alguns casos, package-dbg . Observe que os pacotes de um PPA não têm símbolos de depuração disponíveis nos repositórios e que é responsabilidade do mantenedor fornecer um pacote que contenha os símbolos de depuração, geralmente em um pacote chamado package-dbg .

Os símbolos de depuração são instalados em /usr/lib/debug , embora gdb leia automaticamente os símbolos de depuração, se disponíveis, e que você não precise especificar manualmente um local para procurar. Dependendo da versão Debhelper Compatibility do pacote, a depuração Os símbolos podem estar localizados em uma pasta com o nome do ID de construção localizado dentro de .build-id ( >= 9 ) ou podem estar localizados em relação ao local onde o executável seria instalado ( < 9 ). Por exemplo, se você estivesse procurando o local dos símbolos de depuração para /usr/bin/zip e a versão fosse menor que 9, seria em /usr/lib/debug/usr/bin/zip .

Para remover todos os símbolos de depuração e o repositório, execute sudo apt-get remove \.*-dbgsym para remover todos os -dbgsym packages e sudo rm /etc/apt/sources.list.d/ddebs.list para remover o repositório de símbolos de depuração.

    
por saiarcot895 24.06.2014 / 13:58
5

Adicionando a resposta de saircot859. Você também tem que instalar a chave GPG para os repositórios, conforme descrito aqui: link

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 428D7C01 C8CAB6595FDFF622
    
por Evan 10.04.2018 / 14:20
2

Adicionando a resposta de Evans: No Ubuntu 18.04 e posterior você usa o comando

sudo apt install ubuntu-dbgsym-keyring

para instalar as chaves GPG. (De acordo com o link )

    
por pt1 20.07.2018 / 22:07