[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Libunwind-devel] vdso and libunwind
From: |
Lassi Tuura |
Subject: |
Re: [Libunwind-devel] vdso and libunwind |
Date: |
Wed, 21 Apr 2010 23:36:30 +0200 |
Hi,
>> Did you look at the ia64 version of libunwind? It does handle VDSO.
>> Frankly, I don't remember the details off hand, but if it doesn't make sense
>> to you, let me know and I'll refresh my memory.
>
> I didn't before, but did now. It's a good example - except that it uses
> getunwind() which appears to be ia64-only syscall. The man page points me to
> look at AT_SYSINFO_EHDR, so assuming I can lay my hands somehow on the auxv,
> it should be possible grab this. Will investigate. Thanks, this was useful!
Muttering to myself:
On x86_64 linux AT_SYSINFO_EHDR is in /proc/self/auxv starting with kernel
2.6.23. I understood GLIBC handles this automatically. Our RHEL5 kernels don't
have it - which begs the question what I ran into originally. Turns out I was
looking at vsyscall page (vgettimeofday, vtime), not vdso (__vdso_gettimeofday).
On x86_64 linux vsyscall page seems to be given by <asm/vsyscall.h> which
defines VSYSCALL_{START,END,SIZE}. As far as I know even GLIBC just hard-codes
the values. I'll try to add handling for this, and will try to find a system
which has vdso just to make sure it gets handled correctly too.
Regards,
Lassi
Re: [Libunwind-devel] vdso and libunwind, Richard Henderson, 2010/04/21