Crashlog: Unix: Decode common si_code values for SIGSEGV
This commit is contained in:
@@ -312,8 +312,21 @@ class CrashLogUnix : public CrashLog {
|
|||||||
#ifdef WITH_SIGACTION
|
#ifdef WITH_SIGACTION
|
||||||
if (this->si) {
|
if (this->si) {
|
||||||
buffer += seprintf(buffer, last,
|
buffer += seprintf(buffer, last,
|
||||||
" si_code: %d\n",
|
" si_code: %d",
|
||||||
this->si->si_code);
|
this->si->si_code);
|
||||||
|
if (this->signum == SIGSEGV) {
|
||||||
|
switch (this->si->si_code) {
|
||||||
|
case SEGV_MAPERR:
|
||||||
|
buffer += seprintf(buffer, last, " (SEGV_MAPERR)");
|
||||||
|
break;
|
||||||
|
case SEGV_ACCERR:
|
||||||
|
buffer += seprintf(buffer, last, " (SEGV_ACCERR)");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
buffer += seprintf(buffer, last, "\n");
|
||||||
if (this->signum != SIGABRT) {
|
if (this->signum != SIGABRT) {
|
||||||
buffer += seprintf(buffer, last,
|
buffer += seprintf(buffer, last,
|
||||||
" Fault address: %p\n",
|
" Fault address: %p\n",
|
||||||
|
Reference in New Issue
Block a user