Como instalar o GDB no RHEL 8

Como instalar o GDB no RHEL 8

GDB Ou o GNU Project Debugger é uma ótima ferramenta quando você precisa depurar um programa. Você pode definir pontos de interrupção, observar a mudança de valor de uma variável ou até alterar um valor para o programa enquanto ele é interrompido em um ponto de seu estado e continue, apenas para escolher alguns dos recursos do GDB.

Neste tutorial, instalaremos o GDB no RHEL 8 e testaremos como ele está funcionando com um aplicativo C simples.

Neste tutorial, você aprenderá:

  • Como instalar o GDB
  • Como compilar um aplicativo C simples com símbolos de depuração
  • Como definir pontos de interrupção no aplicativo em execução com GDB
  • Como imprimir valores reais de determinadas variáveis ​​dentro do aplicativo
Pisando por um loop com GDB.

Requisitos de software e convenções usadas

Requisitos de software e convenções de linha de comando Linux
Categoria Requisitos, convenções ou versão de software usada
Sistema Red Hat Enterprise Linux 8
Programas GDB 8.2
Outro Acesso privilegiado ao seu sistema Linux como raiz ou através do sudo comando.
Convenções # - requer que os comandos Linux sejam executados com privilégios root diretamente como usuário root ou por uso de sudo comando
$ - Requer que os comandos do Linux sejam executados como um usuário não privilegiado regular

Como instalar o GDB no Redhat Linux 8 Instruções passo a passo



Para este tutorial, usaremos um aplicativo C simples que define algumas variáveis, imprimirá algum texto e alteramos os valores de suas variáveis ​​posteriormente. É construído apenas para mostrar alguns recursos de GDB, e não tem uso do mundo real.

Se você não estiver familiarizado com a linguagem de programação C, poderá verificar o desenvolvimento do desenvolvimento no Linux Introdução para iniciar. Por enquanto, considere o seguinte código fonte, que colocaremos no vars.c arquivo de texto:

#include int main () int i = 1; int j = 10; printf ("variáveis ​​set \ n)"; i ++; j = 20; printf ("Valores variáveis ​​modificados \ n"); retornar 0; 
cópia de

Usaremos este programa simples para testar GDB. Você pode notar do código que as variáveis ​​dos valores eu e j Tomar nunca será exposto sob a execução normal do programa, para que não saibamos quais valores seus valores e quando. Nesse caso, é um simples desperdício de memória, mas pense em um caso de uso onde eu Guardaria algo importante, talvez uma senha codificada, código de trapaça ou outro tesouro (ou simplesmente não consegue encontrar onde os cálculos do seu programa dão errado).

  1. GDB faz parte do Ferramentas de desenvolvimento Grupo de pacotes, então, se você instalou ferramentas de desenvolvimento, você já possui GDB. Caso contrário, você pode instalá -lo por si só:
    # dnf install gdb

    Também precisaremos de Debuginfo para o GLIBC para nossos testes:

    # DNF Debuginfo-Install Glibc-2.28-18.EL8.x86_64


  2. Temos a ferramenta depuradora e temos o código -fonte. Para que a depuração seja útil, precisamos compilar nosso programa com símbolos de depuração (adicionamos o -g opção):
    $ gcc -g -o vars vars.c

    Se executarmos nosso vars programa, ele produzirá as cordas no printf linhas, mas não mencionará eu e j, como esperado.

    $ ./variáveis ​​vars define valores variáveis ​​modificados
  3. Precisamos conhecer os valores de eu e j Quando eles se estabeleceram pela primeira vez, e antes do programa sair. Considere as linhas #7 e #10 (o printf linhas) na fonte. Seria ideal se pudéssemos parar a execução nessas linhas, obter os valores e depois soltar o programa novamente, etc. Faremos exatamente isso para testar GDB. Começamos com o compilado vars executável como argumento:
    $ GDB VARS GNU GDB (GDB) Red Hat Enterprise Linux 8.2-3.El8 Copyright (C) 2018 Free Software Foundation, Inc. Licença GPLV3+: GNU GPL Versão 3 ou mais tarde Este é um software livre: você está livre para alterar e redistribuí -lo. Não há garantia, na medida permitida por lei. Digite "Mostrar cópia" e "Mostrar garantia" para obter detalhes. Este GDB foi configurado como "x86_64-redhat-linux-gnu". Digite "Show Configuration" para detalhes de configuração. Para instruções de relatório de bugs, consulte: . Encontre o manual do GDB e outros recursos de documentação online em: . Para obter ajuda, digite "Ajuda". Digite "Palavra do Apropoções" para procurar comandos relacionados a "word"… lendo símbolos de vars… feito. (GDB)

    GDB lê os símbolos no programa e nos dá o aviso de agir. O vars o programa não é iniciado neste ponto. Verificamos nossas anotações e definimos um ponto de interrupção Na linha 7:

    (GDB) Break 7 Ponto de interrupção 1 em 0x40059c: VARS de arquivo.C, linha 7.

    E linha 10:

    (GDB) quebre 10 Ponto de interrupção 2 em 0x4005b1: Vars de arquivo.C, linha 10.

    Com o conjunto de pontos de interrupção, iniciamos a execução:

    (GDB) correr Programa de partida:/tmp/Devel/vars Breakpoint 1, main () em vars.c: 7 7 printf ("Variáveis ​​Conjunto \ n");

    A execução para no primeiro ponto de interrupção, e podemos imprimir os valores das variáveis ​​ocultas:

    (GDB) impressão i $ 1 = 1 (GDB) imprimir j $ 2 = 10

    Temos a primeira parte das informações necessárias, vamos continuar a execução:

    (GDB) continuar Continuando. Variáveis ​​Definir ponto de interrupção 2, main () em vars.C: 10 10 Printf ("Valores variáveis ​​modificados \ n");

    Podemos imprimir os valores da mesma maneira no próximo ponto de interrupção:

    (GDB) Imprimir I $ 3 = 2 (gdb) Imprimir j $ 4 = 20

    Temos tudo o que precisávamos. Não restam mais pontos de interrupção, então o aplicativo sairá normalmente após a impressão da última linha de texto.

    (GDB) continue continuando. Valores variáveis ​​modificados [Inferior 1 (Processo 2330) saiu normalmente] (GDB) Q

    Temos os valores das variáveis ​​secretas e testamos que nosso GDB é tão útil quanto deve ser.

Tutoriais do Linux relacionados:

  • Tutorial de depuração do GDB para iniciantes
  • Coisas para instalar no Ubuntu 20.04
  • Coisas para instalar no Ubuntu 22.04
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Coisas para fazer depois de instalar o Ubuntu 22.04 Jellyfish…
  • Instale Arch Linux na estação de trabalho VMware
  • Ubuntu 20.04 Guia
  • Como fazer bota dupla kali linux e windows 10
  • Sistema Linux Hung? Como escapar para a linha de comando e…
  • Como usar o ADB Android Debug Bridge para gerenciar seu Android…