El depurador GNU

A pesar de que hacer

automatiza el proceso de construcción de un programa de Linux, que parte de la programación es la menor de sus preocupaciones cuando un programa no funciona correctamente o cuando un programa se cierra de repente con un mensaje de error. Necesitas un depurador para encontrar la causa de errores de programa. Linux incluye gdb - el depurador GNU versátil con una interfaz de línea de comandos.

Como cualquier depurador, gdb le permite realizar tareas de depuración típicos, como los siguientes:

  • Establezca un punto de interrupción para que el programa se detiene en una línea determinada.

  • Mira los valores de las variables en el programa.

  • Paso a través del programa de una línea a la vez.

  • Cambie las variables en un intento para corregir los errores.

los gdb depurador puede depurar programas en C y C ++.

Preparación para depurar un programa

Si desea depurar un programa mediante el uso de gdb, usted tiene que asegurarse de que el compilador genera y lugares de depuración de información en el ejecutable.

La información de depuración contiene los nombres de las variables en su programa y la asignación de direcciones en el archivo ejecutable para líneas de código en el archivo de origen. gdb necesita esta información para realizar sus funciones, tales como detener después de ejecutar una línea específica de código fuente.

Para asegurarse de que el ejecutable se prepara adecuadamente para la depuración, utilice el -g opción con GCC. Usted puede hacer esta tarea mediante la definición de la variable CFLAGS en el makefile como

CFLAGS = -g

Gdb Correr

La forma más común para depurar un programa es ejecutar gdb utilizando el siguiente comando:

gdb progname

progname es el nombre del archivo ejecutable del programa. Después progname carreras, gdb muestra el siguiente mensaje y le solicita un comando:

GNU gdb (BGF) 7.5.91.20130417-cvs-ubuntuCopyright (c) 2013 Fundación para el Software, Inc.License GPLv3 +: GNU GPL versión 3 o posterior ___This es software libre: usted es libre de cambiar y redistribuir it.There es NINGUNA GARANTÍA , en la medida permitida por la ley. Tipo "show copiado" y "show de garantía" para detalles.Este GDB se configuran como - .Para instrucciones de información bug "i686-linux gnu", por favor visite: http: //gnu.org/software/gdb/bugs/. (gdb)

Puede escribir gdb comandos en el (gdb) Del sistema. Un comando útil, Ayuda, muestra una lista de comandos, como el siguiente listado muestra:

(gdb) AyudaLista de clases de órdenes: alias - Alias ​​de otros commandsbreakpoints - Hacer parada programa en cierta pointsdata - Datafiles Examinar - Especificación y examinan filesinternals - commandsobscure Mantenimiento - featuresrunning Obscure - Ejecución del programstack - Examinar el stackstatus - - facilitiestracepoints Apoyo - - Estado inquiriessupport Seguimiento de la ejecución del programa sin detener el programuser definidos - commandsType definido por el usuario "ayuda", seguido de un nombre de clase de una lista de comandos en que class.Type "ayudan a todos" para la lista de todos commands.Type "ayuda" seguido del nombre de comando para completos nombre documentation.Command abreviaturas se permiten si no ambigua. (gdb)

Abandonar gdb, escribe q y luego presione Intro.