gcc (GCC) 4.6.0 GDB de GNU (GDB) Fedora (7.2.90.20110525-38.fc15)¿Cómo se ven los símbolos de depuración?
Hace poco tuve un problema cuando yo estaba tratando de depurar mi problema usando GDB. Cuando he cargado mi binaria del BGF se quejó de "No hay símbolos de depuración se encontraron"
Así que cuando hice lo siguiente:
nm ass1
me dio la siguiente salida (sólo de muestra)
00000000006026e0 t __init_array_end
00000000006026d0 t __init_array_start
00000000004020e0 T __libc_csu_fini
0000000000402050 T __libc_csu_init
U [email protected]@GLIBC_2.2.5
00000000006029ec A _edata
0000000000602b28 A _end
000000000040212c T _fini
0000000000401420 T _init
0000000000401610 T _start
U [email protected]@GLIBC_2.2.5
000000000040163c t call_gmon_start
0000000000602b10 b completed.5886
00000000006029e8 W data_start
0000000000602b18 b dtor_idx.5888
00000000004016d0 t frame_dummy
00000000004016f4 T main
El problema fue que olvidé agregar la -g. Así que decidí compilar con -g y corrí nm nuevamente. Tengo una salida simliar, este contiene los símbolos de depuración como solía -g, y gdb no se quejó este tiempo:
U [email protected]@GLIBC_2.2.5
00000000006029ec A _edata
0000000000602b28 A _end
000000000040212c T _fini
0000000000401420 T _init
0000000000401610 T _start
U [email protected]@GLIBC_2.2.5
000000000040163c t call_gmon_start
0000000000602b10 b completed.5886
00000000006029e8 W data_start
0000000000602b18 b dtor_idx.5888
00000000004016d0 t frame_dummy
00000000004016f4 T main
w pthread_cancel
Además de ser la más grande en tamaño binario. Pude notar cualquier diferente usando nm. Me pregunto qué debería estar buscando. ¿Cómo se ven los símbolos de depuración?
Muchas gracias por todas las sugerencias,
he hecho eso con -a con ambos casos se compilan con y sin -g. Sin embargo, obtengo muchos símbolos, pero ¿cuáles son los depurados? Gracias. – ant2009
Lemme anotar. Puede que no tenga ningún símbolo; Linux a menudo utiliza la información de depuración DWARF 2, que se almacena en diferentes segmentos ELF en lugar de la tabla de símbolos (este último es un remanente del formato limitado 'a.out'). – geekosaur