0Pricing
C++ Academy · Aula

Uso de gdb e lldb

Percorra os programas passo a passo

Uso de gdb e lldb é uma aula grátis de C++ Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de C++ Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C++ Academy inclui 4 aulas no total.

Depuradores interativos

gdb (GNU) e lldb (LLVM) permitem pausar um programa em execução, inspecionar variáveis e percorrer o código linha por linha. Os comandos são semelhantes.

Compile com informações de depuração

Sempre compile com -g (e, idealmente, com -O0) para que o depurador possa relacionar o código de máquina ao código-fonte.

g++ -g -O0 main.cpp -o app
# then
gdb ./app

Definindo pontos de interrupção

Um ponto de interrupção pausa a execução em um local escolhido.

  • gdb: break main.cpp:10 ou break myFunc
  • lldb: breakpoint set --file main.cpp --line 10 ou b myFunc

Executando o programa

Inicie a execução com run (ou r). O programa para no primeiro ponto de interrupção que encontrar, pronto para ser inspecionado.

Percorrendo o código

Comandos principais para percorrer o código (com os mesmos nomes no gdb e no lldb):

  • next / n: executa uma linha, passando por cima das chamadas
  • step / s: entra em uma chamada
  • finish: executa até que a função atual retorne
  • continue / c: retoma a execução até o próximo ponto de interrupção

Inspecionando variáveis

Imprima valores para entender o estado do programa.

  • gdb: print x, print arr[2]
  • lldb: frame variable ou p x

Um alvo de sessão de exemplo

Considere este programa; você pode interrompê-lo no laço e imprimir sum a cada iteração.

#include <iostream>

int main() {
    int sum = 0;
    for (int i = 1; i <= 3; ++i) {
        sum += i;
    }
    std::cout << sum << "\n";
    return 0;
}

A pilha de chamadas

Quando o programa estiver parado, backtrace (gdb) ou bt (lldb) mostrará a cadeia de chamadas de funções. Use frame N para mudar para uma função chamadora e inspecionar suas variáveis locais.

Pontos de observação

Um ponto de observação interrompe o programa quando uma variável muda, ajudando a descobrir onde ocorrem modificações inesperadas.

  • gdb: watch counter
  • lldb: watchpoint set variable counter

Pontos de interrupção condicionais

Interrompa a execução apenas quando uma condição for satisfeita, evitando percorrer o código manualmente.

  • gdb: break loop.cpp:5 if i == 99
  • lldb: breakpoint set --line 5 --condition "i == 99"

Depurando falhas

Execute o programa que falha sob o depurador; em uma falha de segmentação, ele para na linha que causou o erro. Em seguida, use bt para ver como você chegou até lá. Você também pode analisar um despejo de memória posteriormente.

Verificação rápida

Relembre os comandos para percorrer o código.

Recapitulação

Você aprendeu sobre depuração interativa.

  • Compile com -g -O0
  • Defina pontos de interrupção, use run e depois next/step/finish
  • Inspecione com print/frame variable e backtrace
  • Pontos de observação e pontos de interrupção condicionais ajudam a localizar erros difíceis

Perguntas Frequentes

A aula “Uso de gdb e lldb” é grátis?

Sim — o texto completo de “Uso de gdb e lldb” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de C++ Academy, atualize para CoddyKit PRO. O curso de C++ Academy inclui 4 aulas no total.

O que vou aprender em “Uso de gdb e lldb”?

Percorra os programas passo a passo Você pratica C++ Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar C++ Academy?

Nenhuma experiência prévia é necessária. C++ Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Uso de gdb e lldb”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de C++ Academy?

Sim. Cada aula de C++ Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Uso de gdb e lldb
  2. AddressSanitizer
  3. UBSan e TSan
  4. Noções básicas de Valgrind
← Voltar para C++ Academy