Debbuging e Análise

Debbuging

Sem dúvidas, a ferramenta mais utilizada para o debugging de aplicações é o GDB - The GNU Project Debugger.

Ele é o debugger padrão do GNU/Linux, disponível para a maioria das arquiteturas embarcadas. Apresenta suporte para diversas linguagens como C, C++, Pascal, Objective-C, Fortran, Ada e etc.

Possui uma interface por console (terminal), mas também possui algumas aplicações de front-ened para facilitar a visualização, por exemplo o VisualGDB.

Além disso, possui uma integração limpa e bem eficiente como IDEs como o Eclipse.

Os comandos básicos do GDB para debbugins são:

  • break sum - Coloca um breakpoint na entrada da função sum();

  • break helloworld.c:45 - Coloca um breakpoint na linha 45 do ar- quivo helloworld.c;

  • print variável ou print node->data_st.temperatura - Imprime variável ou alguma referência mais complexa;

  • continue - Continua a execução;

  • next - Continua para a próxima linha (step over na função);

  • step - Continua para a proxima linha (step in na função);

  • backtrace - Imprime a stack do programa.

Além disso, existe o caso onde é necessário o Debugging Remoto. Isto é geralmente necessário em duas situações: na primeira, normalmente o fonte da aplicação se encontram na máquina de desenvolvimento e o binário no target. Ou, o target é limitado e não possui o gdb compilado de forma nativa (~2.4mb).

Para estes cenários uma solução é utilizar:

  • gdb client (arm-linux-gdb) é utilizado na máquina de desenvolvimento;

  • gdbserver é utilizado no target (~100Kb).

Last updated