Para executar o programa recursao.c :
$ make recursao
$ gdb ./recursaoAssim 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.