- 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?
Kernel can also randomize VDSO load address. One possibility is to peek into libc's private data structures (struct link_map). Getting a stable public interface from libc would be nice though.
-Arun