[Add] Let's catch SIGTRAP too.
This commit is contained in:
parent
58ee934426
commit
8716d14016
@ -615,6 +615,7 @@ static void print_SDLversion(void) {
|
||||
static const char* debug_sigCodeToStr(int sig, int sig_code) {
|
||||
if(sig == SIGFPE)
|
||||
switch(sig_code) {
|
||||
case SI_USER: return "SIGFPE (raised by program)";
|
||||
case FPE_INTDIV: return "SIGFPE (integer divide by zero)";
|
||||
case FPE_INTOVF: return "SIGFPE (integer overflow)";
|
||||
case FPE_FLTDIV: return "SIGFPE (floating-point divide by zero)";
|
||||
@ -627,10 +628,18 @@ static const char* debug_sigCodeToStr(int sig, int sig_code) {
|
||||
}
|
||||
else if(sig == SIGSEGV)
|
||||
switch(sig_code) {
|
||||
case SI_USER: return "SIGSEGV (raised by program)";
|
||||
case SEGV_MAPERR: return "SIGEGV (address not mapped to object)";
|
||||
case SEGV_ACCERR: return "SIGEGV (invalid permissions for mapped object)";
|
||||
default: return "SIGSEGV";
|
||||
}
|
||||
else if(sig == SIGTRAP)
|
||||
switch(sig_code) {
|
||||
case SI_USER: return "SIGTRAP (raised by program)";
|
||||
case TRAP_BRKPT: return "SIGTRAP (process breakpoint)";
|
||||
case TRAP_TRACE: return "SIGTRAP (process trace trap)";
|
||||
default: return "SIGTRAP";
|
||||
}
|
||||
/* No suitable code found. */
|
||||
return strsignal(sig);
|
||||
}
|
||||
@ -681,6 +690,9 @@ static void debug_sigInit(void) {
|
||||
sigaction(SIGFPE, &sa, &so);
|
||||
if(so.sa_handler == SIG_IGN)
|
||||
DEBUG("Unable to set up SIGFPE signal handler.");
|
||||
sigaction(SIGTRAP, &sa, &so);
|
||||
if(so.sa_handler == SIG_IGN)
|
||||
DEBUG("Unable to get set up SIGTRAP signal handler.");
|
||||
#endif /* #if defined(LINUX) && !defined(NODEBUG) */
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user