Jak korzystać z debugowej wersji libc

Krótka wersja pytania: Jak mogę uzyskać, aby gdb używał symboli debugowania dla libc?

Dłuższa wersja: Debuguję program za pomocą gdb i chcę zobaczyć informacje o futexie używanym przez libc. Jednak w pewnym momencie podczas debugowania otrzymuję dane wyjściowe, takie jak:

<code>Catchpoint 2 (call to syscall futex), 0x00007ffff772b73e in ?? () from /lib/libc.so.6
(gdb) bt
#0  0x00007ffff772b73e in ?? () from /lib/libc.so.6
#1  0x00007ffff767fb90 in ?? () from /lib/libc.so.6
#2  0x00007ffff767a4c0 in vfprintf () from /lib/libc.so.6
#3  0x00007ffff768565a in printf () from /lib/libc.so.6
....
</code>

Kiedy uciekaminfo sharedlibrary w gdb w punkcie przerwania widzę:

<code>(gdb) info sharedlibrary
From                To                  Syms Read   Shared Object Library
0x00007ffff7dddaf0  0x00007ffff7df6704  Yes (*)     /lib64/ld-linux-x86-64.so.2
0x00007ffff7bc53e0  0x00007ffff7bd1388  Yes (*)     /lib/libpthread.so.0
0x00007ffff79ba190  0x00007ffff79bd7d8  Yes (*)     /lib/librt.so.1
0x00007ffff76538c0  0x00007ffff7766c60  Yes (*)     /lib/libc.so.6
0x00007ffff6c1fd80  0x00007ffff6c303c8  Yes (*)     /lib/libgcc_s.so.1
(*): Shared library is missing debugging information.
</code>

A kiedy ucieknęldd Widzę:

<code>linux-vdso.so.1 =>  (0x00007ffff7fde000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00007ffff7dbf000)
librt.so.1 => /lib/librt.so.1 (0x00007ffff7bb6000)
libc.so.6 => /lib/libc.so.6 (0x00007ffff7833000)
/lib64/ld-linux-x86-64.so.2 (0x00007ffff7fdf000)
</code>

Używam Ubuntu 10.04 i myślę, że jest dostępna wersja libc z symbolami debugowania/usr/lib/debug/lib. Próbowałem ustawić mojeLD_LIBRARY_PATH zmienna, aby mieć to na początku ścieżki, ale to nie wydawało się mieć znaczenia.

Nie jestem całkowicie pewien, w jaki sposób program wybiera, które biblioteki współdzielone załadować, czy jest to ustawione w czasie wykonywania czy w czasie kompilacji (zakładam, że wykonuję, ale teraz nie jestem pewien). Dlatego doceniane są informacje o tym, jak uzyskać gdb do używania debugowanej wersji libc.

questionAnswers(2)

yourAnswerToTheQuestion