bug-libsigsegv
[Top][All Lists]
Advanced

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

[bug-libsigsegv] Re: sigsegv on s390 only giving start address of page i


From: Heiko Carstens
Subject: [bug-libsigsegv] Re: sigsegv on s390 only giving start address of page in segv handler
Date: Mon, 14 Mar 2011 11:13:54 +0100
User-agent: Mutt/1.5.20 (2009-06-14)

On Fri, Mar 11, 2011 at 05:36:25PM +0100, Christoph Egger wrote:
> Hi all!
> 
> Bruno Haible <address@hidden> writes:
> >>     libsigsegv doesn't cope well with s390 at the moment. This is caused
> >> by the fact, that linux masks the address for sigsegv:
> >> 
> >>   mm/fault.c:#define __FAIL_ADDR_MASK 0x7ffff000
> >> 
> >> So the last 12 bit of information are lost.
> >
> > Thanks for the analysis. Indeed at least the 'sigsegv1' test will fail in 
> > this
> > situation.
> >
> > Have you reported the problem to the linux-kernel mailing list, or to the
> > maintainers of the s390 part of Linux?
> >
> >> Forcing libsigsegv to use 
> >> POSIX signal handlers othewise makes a library that passes all the tests
> >> apart from the exact fault location.
> >
> > That sounds promising, if the kernel problem was fixed.
> 
>     It seems the FAIL_ADDR_MASK is some handling for hardware
> limitation?

The hardware only stores the page address in case of a fault. The rest of
the bits (if defined) in the eight byte value are used for other informations
helping to figure out what sort of fault happened.

> Is there some chance to get near a exact address for
> segfault handlers or will we have to just live with the absence of this
> facility on application level?

You would have to perform instruction decoding to figure out what was the
exact failing address. Not really a thankful job.



reply via email to

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