libunwind-devel
[Top][All Lists]
Advanced

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

Re: [Libunwind-devel] mips implementation libunwind SEGV Faulting


From: Daniel Jacobowitz
Subject: Re: [Libunwind-devel] mips implementation libunwind SEGV Faulting
Date: Fri, 10 Feb 2017 01:24:34 +0000

Sorry, it's been far too long; I definitely did have everything working on MIPS at the time (6-7 years ago).


On Thu, Feb 9, 2017, 8:21 PM Dave Watson <address@hidden> wrote:
On 02/10/17 01:05 AM, John Knight wrote:
> Hi Dave,
>
> I finally got a few cycles to work on your suggestions for trying to use libunwind version 1.1 and 1.0.  I have confirmed that libunwind version 1.1 also SEGVs when compiled for Mips.  Same as 1.2.
>
> As for version 1.0, the source does NOT compile... it fails to compile tests/Gperf-simple.c with multiple undefined references to _Umips_getcontext.  I have attached an excerpt from make log file for your review.
>
> I also have one complaint that covers versions 1.1 and 1.2:
> The file tests/test-coredump-unwind.c fails to compile on our linux system (linux 2.6.36)... the issue is that the test relies on the presence of execinfo.h, and functions backtrace() and backtrace_symbols_fd().  The issue here is that older linux versions do not have execinfo.h, nor do they have backtrace() or backtrace_symbols_fd().  If our version of linux had these, than I would not be looking to implement backtrace() capability with libunwind.  I am not sure I understand why this test uses these, unless to compare the output of libunwind to the output of glibc's backtrace() capability.  At any rate, we can't use this test and we end up patching the libunwind test source, effectively removing the inclusion of execinfo.h and the calls to backtrace() and backtrace_symbols() from the source code just to get it to compile.  It would be VERY NICE if there was a flag that could be set in the Makefile to skip compiling all of the tests.  In our embedded environment, the tests are not useful anyhow.

Git master now has a --disable-tests, but alas it just missed inclusion in 1.2.  Next release though.

> At this point, I have pretty much determined that libunwind's mips implementation is perhaps just a work in progress and not debugged and working. This might explain why mips was not listed as a supported architecture in the online documentation; I was kinda afraid of this.  As for me, I really don't know enough of the mips architecture to provide useful help in debugging this, nor do I have much time available for the activity.   I can tell you it does not work in your current source base (1.2) and also broken in 1.1.  The fact it doesn't compile in 1.0 is also pretty telling for that release as well.  Perhaps the contributor of the mips code to the libunwind project can help get it to work?  If the issues with it cannot be resolved any time soon, I am afraid I may have to find an alternative way to implement backtrace on mips... not something I look forward to.

I've cc'd a few of the mips committers if they have any suggestions for help.

> Thanks for your suggestions and help with this... I will see if I can gleen any more info from the SEGV fault, but alas, I don't have a lot of hope for this.  I'll see if I can at least determine what function is actually causing the SEGV... beyond this, not sure how much more I can do.

If you do get any more info let us know, I'm out of ideas for now though.

Thanks!

reply via email to

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