Como instalar o GDB no RHEL 8
- 3302
- 622
- Loren Botsford
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
Requisitos de software e convenções usadas
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).
GDB
faz parte doFerramentas 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
- 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 noprintf
linhas, mas não mencionaráeu
ej
, como esperado.$ ./variáveis vars define valores variáveis modificados
- Precisamos conhecer os valores de
eu
ej
Quando eles se estabeleceram pela primeira vez, e antes do programa sair. Considere as linhas #7 e #10 (oprintf
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 testarGDB
. Começamos com o compiladovars
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. Ovars
o programa não é iniciado neste ponto. Verificamos nossas anotações e definimos umponto 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…