Um pacote debuginfo ou debugsource fornece informações de depuração válidas apenas para um pacote binário com o mesmo nome, versão, lançamento e arquitetura:
Pacote binário packagename-version-release.architecture.rpm
Pacote de Debuginfo packagename-debuginfo-version-release.architecture.rpm
Pacote de fonte de depuração packagename-
debugsource-version-release.architecture.rpm
Recursos adicionais
Seção 7.1, “Informações sobre depuração”
Seção 1.2, “Habilitação de depuração e repositórios de fonte”
7.4. OBTENDO PACOTES DE DEBUGINFO PARA UMA APLICAÇÃO OU
BIBLIOTECA USANDO GDB
As informações de depuração são necessárias para depurar o código. Para o código que é instalado a partir de um pacote, o GNU Debugger (GDB) reconhece automaticamente as informações de depuração faltantes, resolve o nome do pacote e fornece conselhos concretos sobre como obter o pacote.
Pré-requisitos
A aplicação ou biblioteca que você deseja depurar deve ser instalada no sistema.
A GDB e a ferramenta debuginfo-install devem ser instaladas no sistema.
Os canais que fornecem os pacotes debuginfo e debugsource devem ser configurados e habilitados no sistema.
Procedimento
1. Inicie a GDB anexada à aplicação ou biblioteca que você deseja depurar. A GDB reconhece automaticamente as informações de depuração em falta e sugere um comando para executar.
$ gdb -q /bin/ls
Reading symbols from /bin/ls...Reading symbols from .gnu_debugdata for /usr/bin/ls...(no debugging symbols found)...done.
(no debugging symbols found)...done.
Missing separate debuginfos, use: dnf debuginfo-install coreutils-8.30-6.el8.x86_64 (gdb)
2. Sair da GDB: digite q e confirme com Enter. (gdb) q
3. Execute o comando sugerido pela GDB para instalar os pacotes necessários debuginfo: # dnf debuginfo-install coreutils-8.30-6.el8.x86_64
A ferramenta de gerenciamento de pacotes dnf fornece um resumo das mudanças, pede confirmação e, uma vez confirmada, baixa e instala todos os arquivos necessários.
4. Caso a GDB não seja capaz de sugerir o pacote debuginfo, siga o procedimento descrito em
Seção 7.5, “Obtenção manual de pacotes de debuginfo para uma aplicação ou biblioteca” . Recursos adicionais
Guia do Usuário do Red Hat Developer Toolset, seção Instalando Informações de Depuração Como posso baixar ou instalar pacotes de debuginfo para sistemas RHEL?
7.5. OBTENÇÃO MANUAL DE PACOTES DE DEBUGINFO PARA UMA
APLICAÇÃO OU BIBLIOTECA
Você pode determinar manualmente quais pacotes debuginfo você precisa instalar, localizando o arquivo executável e depois encontrando o pacote que o instala.
NOTA
A Red Hat recomenda que você use a GDB para determinar os pacotes para instalação. Use este procedimento manual somente se a GDB não for capaz de sugerir o pacote a ser instalado.
Pré-requisitos
A aplicação ou biblioteca deve ser instalada no sistema. A aplicação ou biblioteca foi instalada a partir de um pacote.
A ferramenta debuginfo-install deve estar disponível no sistema.
Os canais que fornecem os pacotes debuginfo devem ser configurados e habilitados no sistema.
Procedimento
1. Encontre o arquivo executável da aplicação ou biblioteca.
a. Use o comando which para encontrar o arquivo de aplicação. $ which less
/usr/bin/less
b. Use o comando locate para encontrar o arquivo da biblioteca. $ locate libz | grep so
/usr/lib64/libz.so.1 /usr/lib64/libz.so.1.2.11
Se os motivos originais para depuração incluírem mensagens de erro, escolha o resultado onde a biblioteca tem os mesmos números adicionais em seu nome de arquivo que aqueles mencionados nas mensagens de erro. Em caso de dúvida, tente seguir o restante do procedimento com o resultado onde o nome do arquivo da biblioteca não inclui números adicionais.
NOTA
O comando locate é fornecido pelo pacote mlocate. Para instalá-lo e permitir seu uso:
# yum install mlocate # updatedb
2. Procure por um nome e uma versão do pacote que forneceu o arquivo: $ rpm -qf /usr/lib64/libz.so.1.2.7
zlib-1.2.11-10.el8.x86_64
A saída fornece detalhes para o pacote instalado no formato
name:epoch-version.release.architecture.
IMPORTANTE
Se esta etapa não produzir nenhum resultado, não é possível determinar qual pacote forneceu o arquivo binário. Há vários casos possíveis:
O arquivo é instalado a partir de um pacote que não é conhecido pelas ferramentas de gerenciamento de pacotes em sua configuração current. O arquivo é instalado a partir de um pacote baixado localmente e instalado manualmente. Determinar um pacote adequado debuginfo
automaticamente é impossível nesse caso.
Suas ferramentas de gerenciamento de pacotes estão mal configuradas. O arquivo não é instalado a partir de nenhum pacote. Em tal caso, não existe o respectivo pacote debuginfo.
Como os passos seguintes dependem desta, você deve resolver esta situação ou abortar este procedimento. A descrição exata das etapas de solução de
problemas está além do escopo deste procedimento.
3. Instale os pacotes debuginfo usando o utilitário debuginfo-install. No comando, use o nome do pacote e outros detalhes que você determinou durante a etapa anterior:
# debuginfo-instalar zlib-1.2.11-10.el8.x86_64 Recursos adicionais
Guia do Usuário do Red Hat Developer Toolset, seção Instalando Informações de Depuração Como posso baixar ou instalar pacotes de debuginfo para sistemas RHEL?
CAPÍTULO 8. APLICAÇÃO DE INSPEÇÃO DO ESTADO
INTERNO COM A GDB
Para descobrir porque uma aplicação não funciona corretamente, controle sua execução e examine seu estado interno com um depurador. Esta seção descreve como usar o depurador GNU (GDB) para esta tarefa.
8.1. DEPURADOR GNU (GDB)
O Red Hat Enterprise Linux contém o depurador GNU (GDB) que lhe permite investigar o que está acontecendo dentro de um programa através de uma interface de usuário de linha de comando. Para um front end gráfico para GDB, instale o ambiente de desenvolvimento integrado Eclipse. Veja
Utilizando o Eclipse.