miércoles, marzo 25, 2015

Debugging con gdb y usando Dev-C++

Debugging con gdb

Para poder realizar el debug con gdb de un código en C o C++ tenemos que compilar con la opción -g de la siguiente manera:

$ gcc -g -o nombre_ejecutable archivo.c

donde -g habilita la opció de debug, -o le da al archivo ejecutable el nombre de nombre_ejecutable que creará al archivo nombre_ejecutable.exe y archivo.c es nuestro código fuente.

para realizar l debug con gdb:

$ gdb ./nombre_ejecutable
(gdb)

veamos algunos comandos útiles:
(gdb) break main      (crea un breakpoint en nuestra clase principal main)

(gdb) run                  (ejecutará el código hasta encontrar el primer breakpoint)
 
(gdb) continue         (ejecuta el resto del código hasta el próximo breakpoint)
(gdb) step                (ejecuta próxima línea de código)
(gdb) next               (igual que next pero no ejecuta la línea, la considera como la próxima instrucción)
(gdb) break contar  (crea un breakpoint en la función "contar")
(gdb) archivo.c:22  (crea un breakpoint en la línea 22 del archivo fuente archivo.c)
(gdb) print nombre_variable (imprime la variable "nombre_variable" definida en el código)

(gdb) info breakpoints  (lista los breakpoints existentes)

(gdb) delete breakpoint 1 (elimina el breakpoint 1)
(gdb) delete breakpoint 4-7 (elimina el rango de breakpoints del 4 al 7)

Debugging usando el entorno Dev-C++

es importante que nuestro código corra dentro de un proyecto, es decir, debemos crear el proyecto siguiendo los pasos siguientes:
File -> New -> Project

seleccionar por ejemplo "console application" si nuestro código se ejecutará en consola (o elegir otra opción que corresponda), seleccionar si el código está desarrollado en C o C++, colocar nombre de archivo y luego oprimir OK.

Luego debemos crear nuestro código fuente y posteriormente habilitar la opción de debug, para ello deben seguir estos pasos:

Project -> Project Options -> Compiler - Linker

y en la opción Generate debugging information seleccionar Yes.



ahora debemos crear un breakpoint porque si hacemos el debug sin éste el programa se ejecutará de manera nomal, así que a manera de ejemplo creemos un breakpoint en el main, basta con hacer un click izquierdo sobre el número que indica nuestra línea de instrucción main, veremos que aparece un indicador tipo check, ahora estamos listos, podemos oprimir la tecla F5 para realizar el debug.

En la ventana inferior de Dev-C++ en la pestaña Debug,  tenemos varias opciones que pueden ayudarnos a realizar nuestra depuración.


No hay comentarios.:

Kill process in one console command line

example:   $ sleep 3600 & [ 1 ] 2225 $ sleep 3600 & [ 2 ] 2226 $ sleep 3600 & [ 3 ] 2227 $ sleep 3600 & ...