C:
Usando um depurador

Como fazer:

GDB (GNU Debugger) é o depurador mais comumente usado para a programação em C. Aqui está um guia breve sobre como usar o GDB para depurar um programa simples em C.

Primeiro, compile seu programa C com a flag -g para incluir informações de depuração:

gcc -g program.c -o program

Em seguida, inicie o GDB com seu programa compilado:

gdb ./program

Agora, você pode usar vários comandos dentro do GDB para controlar sua operação. Aqui estão alguns comandos fundamentais:

  • break: Define um ponto de interrupção em uma linha especificada ou função para pausar a execução.
    • Exemplo: break 10 ou break main
  • run: Inicia a execução do seu programa dentro do GDB.
  • next: Executa a próxima linha de código sem entrar nas funções.
  • step: Executa a próxima linha de código, entrando nas funções.
  • print: Exibe o valor de uma variável.
  • continue: Retoma a execução até o próximo ponto de interrupção.
  • quit: Sai do GDB.

Aqui está uma sessão exemplo depurando um programa simples:

#include <stdio.h>

int main() {
    int i;
    for (i = 0; i < 5; i++) {
        printf("%d\n", i);
    }
    return 0;
}

Compile e inicie o GDB conforme descrito. Defina um ponto de interrupção na linha do printf com break 5 e então run. Use next para passar pelo loop e print i para inspecionar a variável do loop.

Saída de exemplo após definir um ponto de interrupção e antes da primeira iteração:

Breakpoint 1, main () at program.c:5
5         printf("%d\n", i);

Usando print i após algumas iterações:

$3 = 2

Isso demonstra examinar o estado e o fluxo de um programa simples.

Aprofundamento

O conceito de depuração evoluiu significativamente desde os primórdios da programação, onde bugs físicos (insetos literais) poderiam causar problemas em computadores mecânicos. Hoje, depuradores como o GDB oferecem recursos sofisticados além da simples execução passo a passo e inspeção de variáveis, como a depuração reversa (executando o programa para trás), pontos de interrupção condicionais e scripts para tarefas de depuração automatizadas.

Enquanto o GDB é poderoso e amplamente usado, pode ser denso e desafiador para iniciantes. Ferramentas de depuração alternativas e IDEs (Ambientes de Desenvolvimento Integrados) como Visual Studio Code, CLion ou Eclipse oferecem interfaces mais amigáveis para a depuração do código C, frequentemente integrando auxílios visuais e controles mais intuitivos. Essas alternativas podem não oferecer toda a profundidade de funcionalidade do GDB, mas podem ser mais acessíveis para novatos na programação C.

Além disso, o surgimento de protocolos de servidor de linguagem e padrões de depuração facilitou soluções de depuração multiplataforma, tornando a experiência de depuração mais consistente entre diferentes ferramentas e ambientes. Apesar desses avanços, aprender os detalhes de um depurador tradicional como o GDB oferece uma visão inestimável sobre a execução de programas C e permanece uma habilidade crucial no kit de ferramentas de um desenvolvedor.