This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: vdso


On Wed, Jul 3, 2013 at 2:12 PM, Jan Kratochvil
<jan.kratochvil@redhat.com> wrote:
> On Wed, 03 Jul 2013 10:34:43 +0200, vijay nag wrote:
>> cat /proc/15896/smaps | grep vdso
>> 778:b7fff000-b8000000 r-xp b7fff000 00:00 0          [vdso]
>>
>> Does vdso come with symbols ?
>
> For basic ELF symbols it does. Try:
>         dump memory /tmp/vdso.so 0xb7fff000 0xb8000000
>         readelf -Ws /tmp/vdso.so
>
> and .dynsym section there should contain the symbols:
>      4: ffffffffff700ba0   404 FUNC    GLOBAL DEFAULT   15 __vdso_gettimeofday@@LINUX_2.6
>      5: ffffffffff700d60    61 FUNC    GLOBAL DEFAULT   15 __vdso_getcpu@@LINUX_2.6
> etc.
>
> Then there are also DWARF symbols to see even filenames / line numbers but
> those .debug_* sections at least Fedora ships only on disk in kernel-debuginfo
> rpm. The symbols get loaded automatically by GDB:
> lrwxrwxrwx 1 root root 61 Jul  2 00:43 /usr/lib/debug/.build-id/92/0bba09195bde2b45a7a4eaec1dc78c3157c0f5 -> ../../../../../lib/modules/3.9.8-200.fc18.x86_64/vdso/vdso.so*
> lrwxrwxrwx 1 root root 58 Jul  2 00:43 /usr/lib/debug/.build-id/92/0bba09195bde2b45a7a4eaec1dc78c3157c0f5.debug -> ../../lib/modules/3.9.8-200.fc18.x86_64/vdso/vdso.so.debug
> -rwxr-xr-x 1 root root   4856 Jun 28 16:56 /lib/modules/3.9.8-200.fc18.x86_64/vdso/vdso.so*
> -r--r--r-- 1 root root 104848 Jun 28 16:56 /usr/lib/debug/lib/modules/3.9.8-200.fc18.x86_64/vdso/vdso.so.debug
> $ rpm -qf /lib/modules/3.9.8-200.fc18.x86_64/vdso/vdso.so /usr/lib/debug/lib/modules/3.9.8-200.fc18.x86_64/vdso/vdso.so.debug
> kernel-3.9.8-200.fc18.x86_64
> kernel-debuginfo-3.9.8-200.fc18.x86_64
>
>
> You should check first /tmp/vdso.so to see whether your Linux kernel or GDB is
> the problem.
>
>
> Jan

Following are output of readelf and something is surely amiss like you suggested

readelf -Ws /tmp/vdso.so

Symbol table '.dynsym' contains 9 entries:
   Num:    Value  Size Type    Bind   Vis      Ndx Name
     0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND
     1: ffffe400     0 SECTION LOCAL  DEFAULT    6
     2: ffffe478     0 SECTION LOCAL  DEFAULT    8
     3: ffffe480     0 SECTION LOCAL  DEFAULT    9
     4: ffffe618     0 SECTION LOCAL  DEFAULT   11
     5: ffffe400    20 FUNC    GLOBAL DEFAULT    6 __kernel_vsyscall@@LINUX_2.5
     6: 00000000     0 OBJECT  GLOBAL DEFAULT  ABS LINUX_2.5
     7: ffffe440     7 FUNC    GLOBAL DEFAULT    6
__kernel_rt_sigreturn@@LINUX_2.5
     8: ffffe420     8 FUNC    GLOBAL DEFAULT    6 __kernel_sigreturn@@LINUX_2.5


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]