Re: 2.2.17pre15 and SA_SIGINFO

From: Miquel van Smoorenburg (miquels@cistron.nl)
Date: Wed Aug 02 2000 - 04:45:08 EST


In article >3987CA65.B4BDBCD2@transmeta.com>,
H. Peter Anvin <hpa@transmeta.com> wrote:
>I have a program which relies on being able to derive the address of
>a SIGSEGV. To do that, I use the SA_SIGINFO option to sigaction() and
>read out the faulting address from the si_addr parameter of the siginfo
>structure (second argument.) I also check si_code for SEGV_ACCERR.
>
>Under 2.4 kernels, this works great. However, under 2.2.17pre15 (I
>downgraded because of stability problems) and glibc 2.1.2, si_code
>and si_addr are both 0. Is this simply unimplemented in 2.2 kernels,
>or is this a bug?

Well, I can't help you with that, but I know of an alternative for
i386 at least:

#include <signal.h>

void segv_handler(int sig, struct sigcontext ctx)
{
        void *addr = (void *)ctx.eip;

        ...
}

Mike.

-- 
Cistron Certified Internetwork Expert #1. Think free speech; drink free beer.

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Aug 07 2000 - 21:00:08 EST