semestre_2/Introdução à Análise de Alg.../Correção.md

2.2 KiB

Correção

  • Identificar invariáveis

  • Inicialização

  • Manutenção

  • Término

Anotações GDB

  • Compilar um programa com a flag -g faz com que este programa armazene seu código fonte, permitindo-o ser debugado em sua execução.

  • Para se debugar um programa, chama-se este com o comando gdb no terminal.

  • run roda o programa.

  • layout next muda a forma de exibição da interface.

  • refresh atualiza a interface.

  • next, ou n, avança o programa em uma linha de comando no escopo atual.

  • print, ou apenas p, pode ser utilizado para realizar calculos aritméticos com o valor de variáveis.

  • print var apresenta o valor da variável var.

  • print vector@x apresenta os primeiros x valores de um vetor vector.

  • print *vector@x apresenta os valores apontados por um vetor de ponteiros vector.

  • step avança o programa em uma linha de comando no escopo global, entrando em funções, etc.

  • break x coloca um ponto de interrupção da execução na linha x.

  • break function coloca um ponto de interrupção da execução no início de uma função function.

  • info break lista todos os pontos de interrupção;

  • del x apaga o breakpoint de número x, tal qual descrito por info break.

  • clear function retira os pontos de interrupção colocados na função function.

  • display i para cada comando seguinte, mostrar o valor de i. undisplay n cessa este comportamento para a variável de índice n.

  • watch [expressão] (watchpoint) interrompe a execução do programa toda vez que o valor de uma expressão se altera.

  • whatis i, ou what i, mostra o tipo da variável i.

  • backtrace (bt) no caso de um Segmentation Fault, aponta-se a linha em que este ocorreu e os valores das variáveis à este ponto.

  • finish executa a função atual e interrompe a execução quando esta termina, indicando onde no código esta retorna e com qual valor.

  • quit sai do debugger.

Comandos avançados

  • target record-full grava a execução e permite voltar para passos anteriores com reverse-next, reverse-step, reverse-continue (rn, rs).

  • set var i = x altera o valor da variável i para x e permite a continuidade da execução do código.