Depurando con CGDB
Depurar con gdb no es realmente complicado, al principio uno se siente tentado de usar printf’s(C)/std::couts(C++) como método de depuración, pero no!, invertir tiempo en aprender a usar mínimamente gdb es más práctico, más eficiente y además ahorra mucho tiempo. Hay mil manuales sobre gdb, aquí os propongo dos que he encontrado buscando a bote pronto, gdb-quickreference y esta guía, aunque la documentación oficial es genial.
En cualquier caso, ya de puestos, y suponiendo que os habéis mirado algo de gdb, buscando interfaces gráficas para el gdb encontré este que me ha gustado especialmente, cgdb. Es básicamente un gdb, en ncurses, pero con una ventana para ver el código con resaltado de sintaxis y la posibilidad de abrir el tty de la aplicación en otra subventana (para no mezclar la entrada/salida del programa con la linea de comandos del depurador).
Si ya sabes gdb, esto solamente será azúcar para tu debug 🙂
La guía está muy bien. Tiene un montón de comandos muy útiles que no conocía. Sin embargo, no menciona un truco bastante útil: la mayoría de la gente, para empezar a depurar, hace un
b main
r
para que el programa pare justo en el comienzo. Eso se puede hacer automáticamente con el comando
start
que inicia la ejecución y la detiene al principio de main. Además acepta los mismos parámteros que ‘run’.