61 lines
2.2 KiB
Markdown
61 lines
2.2 KiB
Markdown
# 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. |