This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: vdso
- From: Jan Kratochvil <jan dot kratochvil at redhat dot com>
- To: vijay nag <vijunag at gmail dot com>
- Cc: gdb at sourceware dot org
- Date: Wed, 3 Jul 2013 10:42:07 +0200
- Subject: Re: vdso
- References: <CAKhyrx_TULNrWwSJ0zPq4tgd8MOpkhSRYZfbMRFcRLw7P0mj4Q at mail dot gmail dot com>
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