libunwind-devel
[Top][All Lists]
Advanced

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

Re: [Libunwind-devel] crashes trying to get a backtrace from a signal ha


From: Sven Neumann
Subject: Re: [Libunwind-devel] crashes trying to get a backtrace from a signal handler (ARM)
Date: Fri, 10 Sep 2010 22:05:22 +0200

Hi,

On Fri, 2010-09-10 at 15:36 +0200, Lassi Tuura wrote:

> > In case this might help, I have uploaded the assembler code from
> > uClibc-0.9.30.1 that I believe to be relevant here:
> > 
> > http://svenfoo.org/misc/sigrestorer.S
> 
> No unwind info at least there. You should see some .eh_frame (or 
> .debug_frame?) type description a bit like this:
> 
> http://repo.or.cz/w/glibc.git/blob?f=sysdeps/unix/sysv/linux/x86_64/sigaction.c#l122

There's nothing like this in uClibc 0.9.30.1
libc/sysdeps/linux/arm/sigaction.c either. I've also checked git master
of uClibc to see if anything changed since then, but it looks like the
relevant files have not been touched over the last two years.

> I guess you could either coax uclibc to add the info, or teach
> libunwind how to walk around it. There's code for example like this to
> try to recognise linux signal return instruction pattern:
> 
> http://git.savannah.gnu.org/gitweb/?p=libunwind.git;a=blob;f=src/x86/Gos-linux.c;h=31f83bae01668332dc738cc70fbc8076990a8528;hb=HEAD#l29
> 

Unfortunately the implementation of unw_is_signal_frame() is missing for
the ARM platform.

I am totally open for both solutions, but I am afraid, I have not enough
understanding of all this to implement this myself. I can try patches,
either for uClibc or libunwind, and I am also willing to push a working
change upstream, but I definitely need more guidance if I am supposed to
write these patches myself.


Regards,
Sven





reply via email to

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