8.4. Mostrando valores internos do programa com a GDB
A exibição dos valores das variáveis internas de um programa é importante para a compreensão do que o programa está fazendo. A GDB oferece comandos múltiplos que você pode usar para inspecionar as variáveis internas. Esta seção descreve o mais útil destes comandos:
p
(imprimir)Mostrar o valor do argumento apresentado. Normalmente, o argumento é o nome de uma variável de qualquer complexidade, desde um simples valor único até uma estrutura. Um argumento também pode ser uma expressão válida na linguagem atual, incluindo o uso de variáveis de programa e funções de biblioteca, ou funções definidas no programa que está sendo testado.
É possível estender o GDB com pretty-printer Python ou Guile scripts para exibição personalizada de estruturas de dados (tais como classes, estruturas) usando o comando
print
.bt
(backtrace)Exibir a cadeia de chamadas de funções usadas para alcançar o ponto de execução atual, ou a cadeia de funções usadas até que a execução fosse encerrada. Isto é útil para investigar erros graves (como falhas de segmentação) com causas elusivas.
Adicionando a opção
full
ao comandobacktrace
também exibe variáveis locais.É possível estender o GDB com frame filter scripts Python para exibição personalizada dos dados exibidos usando os comandos
bt
einfo frame
. O termo frame refere-se aos dados associados a uma única chamada de função.info
O comando
info
é um comando genérico para fornecer informações sobre vários itens. Ele toma uma opção especificando o item a ser descrito.-
O comando
info args
exibe opções da chamada de função que é o quadro atualmente selecionado. -
O comando
info locals
exibe variáveis locais no quadro selecionado atualmente.
Para obter uma lista dos itens possíveis, execute o comando
help info
em uma sessão da GDB:(gdb) informações de ajuda
-
O comando
l
(lista)-
Mostrar a linha no código fonte onde o programa parou. Este comando está disponível somente quando a execução do programa é interrompida. Embora não seja estritamente um comando para mostrar o estado interno,
list
ajuda o usuário a entender que mudanças no estado interno acontecerão na próxima etapa da execução do programa.
Recursos adicionais
- O GDB Python API
- Depuração com GDB