[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Libunwind-devel] vdso and libunwind
From: |
Richard Henderson |
Subject: |
Re: [Libunwind-devel] vdso and libunwind |
Date: |
Wed, 21 Apr 2010 21:39:17 -0700 |
User-agent: |
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.9) Gecko/20100330 Fedora/3.0.4-1.fc12 Thunderbird/3.0.4 |
On 04/21/2010 02:36 PM, Lassi Tuura wrote:
> 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.
The bare vsyscall page does date back to the very beginning of
the x86-64 linux support, while the vdso is a later addition.
It has been a long time, but best I can recall the vdso was
added specifically so that we could describe how to unwind from
that page -- although it has a number of other advantages,
including an easy way to add new kernel entry points.
Glibc does contain the asm/vsyscall.h values, but they are
only used if the vdso does not exist. If the vdso does exist,
then glibc uses the addresses given therein.
I don't know if you'll be able to find a way to unwind with
just the bare vsyscall page...
r~
Re: [Libunwind-devel] vdso and libunwind, Richard Henderson, 2010/04/21