• Nenhum resultado encontrado

Nomes dos pacotes

No documento Red Hat Enterprise Linux 8 (páginas 47-51)

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.

No documento Red Hat Enterprise Linux 8 (páginas 47-51)

Documentos relacionados