Thanks for the info Arun. I am running this test on ubuntu 12.04: 3.13.0-32-generic #57~precise1-Ubuntu SMP Tue Jul 15 03:50:54 UTC 2014 i686 i686 i386 GNU/Linux
I will try this with 13.04 and report back. I also have to research move about the vdso. I didn't disable address space randomization yet, but it doesn't look like my binary is linked against linux-vdso.so.1, but I'm thinking linux-gate.so.1 is what I should be checking? jared@jared-vb:~/unwindrepro$ ldd a.out linux-gate.so.1 => (0xb7775000) libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb7745000) libunwind.so.8 => /usr/local/lib/libunwind.so.8 (0xb770e000) libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb7628000) libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb747d000) /lib/ld-linux.so.2 (0xb7776000) libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb7451000) libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb7433000) ~Jared On Sat, Sep 20, 2014 at 8:21 AM, Arun Sharma <[email protected]> wrote: > [ 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
