Verwendung der Debug-Version von libc

Kurzfassung der Frage: Wie kann ich gdb dazu bringen, die Debugsymbole für libc zu verwenden?

Längere Version: Ich debugge ein Programm mit gdb und möchte Informationen zu einem von libc verwendeten Futex sehen. Irgendwann während des Debuggens erhalte ich jedoch folgende Ausgaben:

<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>

Wenn ich renneinfo sharedlibrary in gdb am breakpoint sehe ich:

<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>

Und wenn ich renneldd Aha:

<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>

Ich benutze Ubuntu 10.04 und ich denke, dass die Version von libc mit Debug-Symbolen in ist/usr/lib/debug/lib. Ich habe versucht, meineLD_LIBRARY_PATH variabel, um dies an der Spitze des Pfades zu haben, aber das schien keinen Unterschied zu machen.

Ich bin nicht ganz sicher, wie das Programm auswählt, welche gemeinsam genutzten Bibliotheken geladen werden sollen, ob dies zur Laufzeit oder zur Kompilierungszeit festgelegt wird (ich habe eine Art Laufzeit angenommen, bin mir aber jetzt nicht sicher). Daher sind Informationen darüber, wie Sie gdb dazu bringen, die Debug-Version von libc zu verwenden, willkommen.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage