Lines 10986-10994
Link Here
|
10986 |
|
10986 |
|
10987 |
#include <signal.h> |
10987 |
#include <signal.h> |
10988 |
#include "$srcdir/src/fault-macos-powerpc.c" |
10988 |
#include "$srcdir/src/fault-macos-powerpc.c" |
10989 |
void sigsegv_handler (int sig, int code, struct sigcontext *scp) |
10989 |
void sigsegv_handler (int sig, siginfo_t *sip, struct sigcontext *scp) |
10990 |
{ |
10990 |
{ |
10991 |
void *fault_address = (void *) (get_fault_addr (scp)); |
10991 |
void *fault_address = (void *) (get_fault_addr (scp, sip->si_addr)); |
10992 |
} |
10992 |
} |
10993 |
|
10993 |
|
10994 |
int |
10994 |
int |
Lines 11037-11042
Link Here
|
11037 |
#if HAVE_SYS_SIGNAL_H |
11037 |
#if HAVE_SYS_SIGNAL_H |
11038 |
# include <sys/signal.h> |
11038 |
# include <sys/signal.h> |
11039 |
#endif |
11039 |
#endif |
|
|
11040 |
#include <sys/ucontext.h> |
11040 |
#include "$srcdir/src/fault-macos-powerpc.c" |
11041 |
#include "$srcdir/src/fault-macos-powerpc.c" |
11041 |
#include <sys/types.h> |
11042 |
#include <sys/types.h> |
11042 |
#include <sys/mman.h> |
11043 |
#include <sys/mman.h> |
Lines 11061-11069
Link Here
|
11061 |
#endif |
11062 |
#endif |
11062 |
unsigned long page; |
11063 |
unsigned long page; |
11063 |
int handler_called = 0; |
11064 |
int handler_called = 0; |
11064 |
void sigsegv_handler (int sig, int code, struct sigcontext *scp) |
11065 |
void sigsegv_handler (int sig, siginfo_t *sip, struct sigcontext *scp) |
11065 |
{ |
11066 |
{ |
11066 |
void *fault_address = (void *) (get_fault_addr (scp)); |
11067 |
void *fault_address = (void *) (get_fault_addr (scp, sip->si_addr)); |
11067 |
handler_called++; |
11068 |
handler_called++; |
11068 |
if (handler_called == 10) |
11069 |
if (handler_called == 10) |
11069 |
exit (4); |
11070 |
exit (4); |
Lines 11102-11108
Link Here
|
11102 |
sigemptyset(&action.sa_mask); |
11103 |
sigemptyset(&action.sa_mask); |
11103 |
|
11104 |
|
11104 |
action.sa_handler = (void (*) (int)) &sigsegv_handler; |
11105 |
action.sa_handler = (void (*) (int)) &sigsegv_handler; |
11105 |
action.sa_flags = 0; |
11106 |
action.sa_flags = SA_SIGINFO; |
11106 |
|
11107 |
|
11107 |
sigaction (SIGSEGV, &action, (struct sigaction *) NULL); |
11108 |
sigaction (SIGSEGV, &action, (struct sigaction *) NULL); |
11108 |
sigaction (SIGBUS, &action, (struct sigaction *) NULL); |
11109 |
sigaction (SIGBUS, &action, (struct sigaction *) NULL); |