libunwind-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Libunwind-devel] vdso and libunwind


From: Lassi Tuura
Subject: [Libunwind-devel] vdso and libunwind
Date: Wed, 21 Apr 2010 17:14:14 +0200

Hi,

I've run our test applications with GCC 4.5.0 - built software, and indeed the 
vast majority of inaccuracies have gone away with my recent patch set.

There's two issues remaining to fix in libunwind:

- Recognise the 'master' PLT entry. My x86_64 is_plt_entry() only recognises 
the function PLT entries, but once in a blue moon we also get hit in the entry 
that calls into dynamic linker to resolve functions.

- Recognise VDSO. If I understand correctly, the VDSO does not show up in the 
dynamic linker's list of shared objects, so tracing for kernel functions (e.g. 
__vdso_gettimeofday()) fails. Any ideas how we should identify this one? An 
address > 0xffffffffnnnnnnnn on x86-64 is very likely VDSO, but how do I get 
the beginning address to feed the rest of the chain? Look in /proc/self/maps?

I didn't really look carefully yet, I know there's logic to parse 
/proc/self/maps, and I think the unwind info is correct for the VDSO, so I am 
just guessing VDSO is just not getting detected for one reason or another. Will 
continue debugging but hints would be useful.

Regards,
Lassi

PS. Fortunately GCC 4.5.0 makes most of the inaccuracies due to missing unwind 
info for function epilogues go away.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]