[ Cc'ing a few more people who may be more familiar than me with what's going on ]
On Wed, Sep 17, 2014 at 10:05 AM, Masatake YAMATO <[email protected]> wrote: > To decode the stack when the pc in vdso, kernel must prepare information > how the vdso code uses the stack and libunwind has ability to use the > information. > Previous threads on this topic: http://lists.nongnu.org/archive/html/libunwind-devel/2010-04/msg00051.html If dl_iterate_phdr() returned vDSO, I think libunwind will just work. However, a recent commit linked to: https://sourceware.org/bugzilla/show_bug.cgi?id=16046 removed the vdso from user visible API. Try running the test program in the bug above to verify. We'll need a special code such as: https://lkml.org/lkml/2012/9/10/422 to discover the vDSO and find the unwind info. I ran Jared's test program on git head as of today and it passes for me 100% of the time (I ran it 10 times). This was on ubuntu 13.10. If you want to debug this further: 1. Turn off address space randomization 2 . $ ldd you-binary # write down the address of linux-vdso.so.1 3. Run with UNW_DEBUG_LEVEL=xx Look for "checking <path> base=address" Debug(15, ..) from dwarf_callback. If you see an IP that falls in the vdso range, but don't see a corresponding debug message in dwarf_callback, libunwind couldn't find vDSO unwind info. -Arun _______________________________________________ Libunwind-devel mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/libunwind-devel
