libunwind-devel
[Top][All Lists]
Advanced

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

Re: [Libunwind-devel] UNW_EINVAL stepping past _L_lock_686 in pthread_mu


From: Jared Cantwell
Subject: Re: [Libunwind-devel] UNW_EINVAL stepping past _L_lock_686 in pthread_mutex_lock
Date: Sat, 20 Sep 2014 08:44:40 -0600

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?

address@hidden:~/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 <address@hidden> 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 <address@hidden> 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



reply via email to

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