gcc (GCC) 4.6.0 GNU gdb (GDB) Fedora (7.2.90.20110525-38.fc15)Jak wyglądają symbole debugowania?
Niedawno miałem problem, gdy starałem się debugowania mój problem za pomocą gdb. Kiedy załadowane moja binarny gdb skarżył „Brak symbole debugowania stwierdzono”
Więc kiedy robiłam następujące:
nm ass1
Mam następujące wyjściowe (tylko próbka)
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
problem polegał na tym, że zapomniałem dodać -g. Postanowiłem więc skompilować z -g i ponownie uruchomić nm. Mam wyjście simliar ten zawiera symbole debugowania jak kiedyś -g i gdb nie skarżą ten czas:
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
Oprócz binarna jest większy. Zauważyłem jakikolwiek inny za pomocą nm. Zastanawiam się, czego powinienem szukać? Jak wyglądają symbole debugowania?
Wielkie dzięki za wszelkie sugestie,
Zrobiłem to z -a z oba przypadki kompilują się zi bez -g. Jednak dostaję dużo symboli, ale które z nich są debugujące? Dzięki. – ant2009
Lemeruj adnotację. Możesz nie mieć żadnych symboli; Linux często używa informacji debugowania DWARF 2, które są przechowywane w różnych segmentach ELF zamiast w tablicy symboli (ta ostatnia jest wstrzymywaniem z ograniczonego formatu 'a.out'). – geekosaur