Como entrar ou sobre uma função no GDB

Como entrar ou sobre uma função no GDB
A depuração é uma habilidade fundamental que qualquer programador auto-identificado deve ter. Ele nos permite visualizar, revisar e corrigir erros em nosso código. Uma poderosa ferramenta de depuração é o depurador da GNU, GDB para abreviar.

Este guia analisará o trabalho com o GDB para entrar ou sobre uma função em nosso código.

Uso básico do GDB

Para ilustrar isso, você pode usar seu código ou usar a amostra fornecida abaixo. No exemplo abaixo, a função Loop Me contém um loop que examinaremos com o GDB.

#incluir
Void LoopMe ()

para (int i = 0; i<5;i++)
printf ("i é %d \ n", i);


int main ()
int a = 10;
a += 10;
printf ("Valor de A é %d", a);
loopMe ();
retornar 0;

Compilar o código com -g como:

$ gcc -g loop.C -O loop

Em seguida, inicie o programa com o GDB como:

$ GDB LOOP

Uma vez no GDB, podemos executar o programa usando o comando run ou r. Você pode interromper o programa enquanto estiver em execução usando a tecla Ctrl + C.

Vamos definir um ponto de interrupção na função principal para interromper a execução nesse ponto. No exemplo acima, paramos na linha 10.

$ (GDB) Break Main

Breakpoint 1 em 0x555555555171: loop de arquivo.C, linha 10.

Para passar pelo seu programa linha por linha, você pode usar o comando próximo ou n.

$ (GDB) Próximo
$ (gdb) n

Depois de chegar à função em que deseja trabalhar, no exemplo acima, a função loopMe (), você pode passar por cima do próximo comando.

Isso vai pular a função e retornar diretamente 0 como:

Você também pode entrar na função e trabalhar nela usando o comando STEP ou S. Por exemplo, para inserir a função loopMe (), podemos fazer:

Etapa $ (GDB)

O comando entrará na função como:

Agora que estamos dentro da função loopMe (), podemos passar por ela linha por linha usando o próximo comando:

Como você pode ver, corremos pelo loop e veremos como o loop é executado.

Conclusão

Neste tutorial rápido, discutimos o processo de usar o GDB para entrar ou entrar em uma função ao depurar.