Lista de comandos GDB y lo que hacen
GDB (GNU Debugger) es una herramienta importante para cualquier programador que trabaja en entornos Linux. Desde la depuración de pequeños errores hasta la solución de problemas más complejos, GDB puede encontrarse en el arsenal de las mejores herramientas de un programador. Este artículo detallará una lista extensa de los comandos de GDB, explicando lo que hacen y cómo utilizarlos.
Comandos de GDB
Breakpoints
break [archivo:]función
Establece un breakpoint en una función específica. Si se omite el archivo, se asume el archivo actual.
tbreak [archivo:]función
Establece un breakpoint temporal en una función específica, lo que significa que el breakpoint se eliminará la próxima vez que se alcance.
rbreak regex
Establece un breakpoint en todas las funciones que coinciden con el patrón regex. Por ejemplo, para establecer un breakpoint en todas las funciones que comienzan con “foo”, se puede usar el regex “^foo”.
Movimiento y ejecución
run [arg1 arg2 ...]
Comienza a ejecutar el programa que se está depurando. Los argumentos siguientes se pasan al programa.
continue
Continúa la ejecución después de haber detenido en un breakpoint anterior.
next
Ejecuta la siguiente línea de código, pero no ingresa en funciones.
step
Ejecuta la siguiente línea de código y entra en funciones.
until [número de línea]
Ejecuta hasta la línea de código especificada (o la siguiente línea después de la línea especificada) y detiene la ejecución.
finish
Ejecuta todas las líneas de código hasta que la función actual termine de ejecutar. Luego detiene la ejecución.
Información de depuración
info args
Muestra los argumentos pasados a la función actual.
info b
Muestra todos los breakpoints activos.
info break [num]
Muestra información sobre el breakpoint especificado.
info locals
Muestra las variables locales en la función actual.
info source
Muestra el nombre del archivo fuente que se está ejecutando actualmente.
Modificación de la ejecución del programa
set var nombre_variable = valor
Establece la variable especificada con el valor especificado.
display [expresión]
Muestra el valor de la expresión cada vez que se detiene en un breakpoint. Se utiliza cuando se quiere hacer un seguimiento continuo de una variable.
undisplay [expresión]
Cancela una expresión en pantalla previamente definida.
disable [num]
Desactiva el breakpoint especificado. Si el número se omite, se desactivan todos los breakpoints.
enable [num]
Activa el breakpoint especificado. Si el número se omite, se activan todos los breakpoints.
Conclusión
GDB es una herramienta invaluable para cualquier programador que trabaja en entornos Linux. Permite depurar el código de una manera eficiente y mejorar la calidad del software. Con la lista extensa de comandos proporcionada en este artículo, los programadores pueden sentirse más seguros y seguros al utilizar GDB para solucionar problemas.
Preguntas frecuentes
¿Cómo establezco un breakpoint en un archivo y línea específicos?
Para establecer un breakpoint en un archivo y línea específicos, se puede utilizar el comando "break archivo:linea". Por ejemplo, para establecer un breakpoint en la línea 25 del archivo "main.c", se puede usar "break main.c:25".
¿Cómo desactivo un breakpoint en particular?
Para desactivar un breakpoint en particular, se puede utilizar el comando "disable num". Se debe especificar el número del breakpoint que se desea desactivar. Por ejemplo, para desactivar el breakpoint número 1, se puede utilizar "disable 1".
¿Cómo puedo ver los valores de las variables en ejecución?
Para ver los valores de las variables en ejecución, se puede utilizar el comando "print variable". Por ejemplo, para ver el valor de la variable "x", se puede utilizar "print x". También se puede utilizar "display variable" para hacer un seguimiento continuo de una variable en particular.
¿Cómo puedo continuar la ejecución del programa después de que se detiene en un breakpoint?
Para continuar la ejecución del programa después de que se detiene en un breakpoint, se puede utilizar el comando "continue". Esto permitirá que el programa continue ejecutándose hasta la siguiente detención, ya sea en otro breakpoint o en un error.
Ejemplos de códigos o comandos
A continuación, se proporciona un ejemplo de cómo se pueden establecer breakpoints y luego ejecutar el programa paso a paso mientras se examinan las variables:
# Establecer un breakpoint en la línea 6 del archivo "main.c"
(gdb) break main.c:6
# Ejecutar el programa
(gdb) run
# Ejecutar la siguiente línea de código
(gdb) next
# Mostrar el valor de la variable "x"
(gdb) print x
# Ejecutar hasta la próxima línea del archivo "main.c"
(gdb) until main.c
# Desactivar el breakpoint número 1
(gdb) disable 1
# Continuar la ejecución hasta la siguiente detención
(gdb) continue
Deja una respuesta