Red Hat Training

A Red Hat training course is available for RHEL 8

8.4. Mostrar los valores internos del programa con GDB

Mostrar los valores de las variables internas de un programa es importante para entender lo que el programa está haciendo. GDB ofrece múltiples comandos que puede utilizar para inspeccionar las variables internas. Esta sección describe los más útiles de estos comandos:

p (imprimir)

Muestra el valor del argumento dado. Normalmente, el argumento es el nombre de una variable de cualquier complejidad, desde un simple valor único hasta una estructura. Un argumento también puede ser una expresión válida en el lenguaje actual, incluyendo el uso de variables de programa y funciones de biblioteca, o funciones definidas en el programa que se está probando.

Es posible ampliar GDB con pretty-printer scripts de Python o Guile para la visualización personalizada de estructuras de datos (como clases, structs) utilizando el comando print.

bt (backtrace)

Muestra la cadena de llamadas a funciones utilizadas para alcanzar el punto de ejecución actual, o la cadena de funciones utilizadas hasta que la ejecución fue terminada. Esto es útil para investigar errores graves (como los fallos de segmentación) con causas esquivas.

Añadiendo la opción full al comando backtrace también se muestran las variables locales.

Es posible ampliar GDB con frame filter scripts de Python para la visualización personalizada de los datos mostrados mediante los comandos bt y info frame. El término frame se refiere a los datos asociados a una única llamada a una función.

info

El comando info es un comando genérico para proporcionar información sobre varios elementos. Toma una opción que especifica el elemento a describir.

  • El comando info args muestra las opciones de la llamada a la función que es el marco actualmente seleccionado.
  • El comando info locals muestra las variables locales en el marco actualmente seleccionado.

Para obtener una lista de los posibles elementos, ejecute el comando help info en una sesión GDB:

(gdb) help info
l (lista)
Muestra la línea del código fuente donde se detuvo el programa. Este comando está disponible sólo cuando la ejecución del programa está detenida. Aunque no es estrictamente un comando para mostrar el estado interno, list ayuda al usuario a entender qué cambios en el estado interno ocurrirán en el siguiente paso de la ejecución del programa.

Recursos adicionales