Nota: decidí solo anotar lo que se me hace más interesante de la lectura, para la full experience, lease el libro xd.
0x252
GNU tiene un debugger llamado GDB, los debuggers son usados para examinar la memoria del programa y ver los registros del procesador. Un programador que nunca ha usado un debugger es como un doctor del siglo XVII que nunca ha usado un microscopio.
Bueno aqui se complicaron un pelin las cosas, no podia hacerle el debugging al archivo ya que al compilar con gcc firstprog.c, produces un binario de 64 bits, y al usar el comando gdb -q ./a.out, arrojaba un error: No encontraba los símbolos para debuggear (????)
la solucion era compilar en un binario de 32 bits pero al intentar hacerlo con gcc -m32 firstprog.c arrojaba fatal error:
libc-header.start.h, la tuve que instalar con sudo apt-get install gcc-multilib, y listo, ahora si pude correr gcc -m32 firstprog.c, ahora bien, ya compiladito, no creo tener más problemas y le puedo debuggear cierto? jaja tonto.gdb -q ./a.out todavia no encuentra los benditos símbolos, y eso pasa porque el binario compilado no tiene nada de informacion util para gdb, entonces lo que tenemos que hacer es revisar las opciones que vienen en https://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html#Debugging-Options y encontrar algo que tenga que ver con gdb, y encontramos que la opcion -g de gcc, es la que genera la informacion que necesita nuestro gdb posteriormente (lo del link es para una referencia mucho mejor, lo de gcc -g lo dicen en stackoverflow https://stackoverflow.com/questions/5244509/no-debugging-symbols-found-when-using-gdb, pero no te dicen QUE ES LO QUE ESTÁ HACIENDO o PORQUE ES NECESARIA ESA OPCION).Total, después de preguntarle al oráculo, dimos con la respuesta, volver a compilar con
gcc -m32 -g firstprog.c

Comentarios
Publicar un comentario