Para executar o programa recursao.c
:
$ make recursao
$ gdb ./recursao
Assim que executar o gdb
, ele abrirá um terminal especial onde você pode inspecionar
o estado da execução do seu programa.
Insira os breakpoints onde você quer que a execução pare para que você possa fazer
alguma análise ou inspeção. O comando de inserir breakpoints é b
e o número da linha.
b 2
b 3
b 7
b 8
b 12
b 13
b 14
b 15
Para rodar o seu programa no GDB, utilize o comando r
de run.
r
Quando o seu programa executar, ele vai executar até o fim OU até chegar em um breakpoint. Quando ele chegar em um breakpoint você tem várias opções para inspecionar o seu programa no estado atual. Dentre elas você pode utilizar:
l
: para mostrar o código que está executando agora.info locals
: para mostrar todas as variáveis locals e seus valores do frame atualbt
: para imprimir a pilha de chamadas de funçõesinfo frame 0
: para mostrar o que stack frame no stack frame da posição 0. As posições vão obdecer as posições que você viu no comandobt
.f 0
: para trocar de frame na pilha de chamadas. Onde 0 é a posição do frame que você quer ir.p xyz
: para imprimir o valor da variavelxyz
Quando você terminar sua análise, você pode utlizar o comando c
para continuar
a execução até o próximo breakpoint.
c
Ao finalizar tudo, você pode utilizar o comando q
para sair do GDB.
q
Se em algum momento do seu programa você não precisar mais dos breakpoints, e quiser
que o programa execute sem eles até o final, você pode utilizar o comando clear
para limpar todos os breakpoints.
clear
Se você deseja ver o assembly que o seu código gerou, juntamente com o endereço de
cada instrução, você pode utilizar o comando layout asm
. Para sair do modo layout
utilize o atalho Ctrl + x
a
.