Wie die debug-version der libc

Kurze version der Frage:
Wie bekomme ich den gdb dazu verwenden Sie die debugging-Symbole für libc?

Längere version:
Ich bin debugging ein Programm mit gdb, und ich möchte, um zu sehen, Informationen über ein futex verwendet libc. Aber irgendwann beim Debuggen bekomme ich die Ausgabe wie:

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

Wenn ich info sharedlibrary im gdb am Haltepunkt sehe ich:

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

Und wenn ich laufen ldd ich sehe:

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)

Ich bin mit Ubuntu 10.04, und ich denke, dass die version der libc mit debug-Symbolen ist in /usr/lib/debug/lib. Ich habe versucht, meine LD_LIBRARY_PATH variable, um diese an der Vorderseite des Weges, aber das scheint nicht, einen Unterschied zu machen.

Ich bin mir nicht ganz klar, wie das Programm wählt die shared libraries zu laden, ob sich das zur Laufzeit oder compile-Zeit (die ich irgendwie davon ausgegangen, Laufzeit, aber ich bin mir jetzt nicht sicher). So Informationen, wie Sie gdb verwenden Sie die debug-version der libc wird geschätzt.

Schreibe einen Kommentar