*** empty log message ***
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@984 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
00fe3073ed
commit
83d13d2064
9 changed files with 160 additions and 48 deletions
|
|
@ -431,7 +431,10 @@ void wad_signal_init() {
|
|||
printf("WAD: Initializing signal handler.\n");
|
||||
}
|
||||
|
||||
/* This is buggy in Linux and threads. disabled by default */
|
||||
#ifndef WAD_LINUX
|
||||
/* Set up an alternative stack */
|
||||
|
||||
sigstk.ss_sp = (char *) wad_sig_stack;
|
||||
sigstk.ss_size = STACK_SIZE;
|
||||
sigstk.ss_flags = 0;
|
||||
|
|
@ -440,6 +443,8 @@ void wad_signal_init() {
|
|||
perror("sigaltstack");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
sigemptyset(&newvec.sa_mask);
|
||||
sigaddset(&newvec.sa_mask, SIGSEGV);
|
||||
sigaddset(&newvec.sa_mask, SIGBUS);
|
||||
|
|
@ -451,9 +456,11 @@ void wad_signal_init() {
|
|||
if (wad_debug_mode & DEBUG_ONESHOT) {
|
||||
newvec.sa_flags |= SA_RESETHAND;
|
||||
}
|
||||
#ifndef WAD_LINUX
|
||||
if (!(wad_debug_mode & DEBUG_NOSTACK)) {
|
||||
newvec.sa_flags |= SA_ONSTACK;
|
||||
}
|
||||
#endif
|
||||
newvec.sa_sigaction = ((void (*)(int,siginfo_t *, void *)) wad_signalhandler);
|
||||
if (sigaction(SIGSEGV, &newvec, NULL) < 0) goto werror;
|
||||
if (sigaction(SIGBUS, &newvec, NULL) < 0) goto werror;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue