Patch by Nitesh Jain
Reviewers: clayborg, ovyalov.
Subscribers: jaydeep, bhushan, mohit.bhakkad, sagar, emaste, lldb-commits.
Differential Revision: http://reviews.llvm.org/D11176
llvm-svn: 243620
m_stop_info.details.signal.signo = signo;
m_stop_description.clear();
- switch (signo)
+ if (info)
{
- case SIGSEGV:
- case SIGBUS:
- case SIGFPE:
- case SIGILL:
- if (! info)
- break;
- const auto reason = GetCrashReason(*info);
- m_stop_description = GetCrashReasonString(reason, reinterpret_cast<uintptr_t>(info->si_addr));
- break;
+ switch (signo)
+ {
+ case SIGSEGV:
+ case SIGBUS:
+ case SIGFPE:
+ case SIGILL:
+ //In case of MIPS64 target, SI_KERNEL is generated for invalid 64bit address.
+ const auto reason = (info->si_signo == SIGBUS && info->si_code == SI_KERNEL) ?
+ CrashReason::eInvalidAddress : GetCrashReason(*info);
+ m_stop_description = GetCrashReasonString(reason, reinterpret_cast<uintptr_t>(info->si_addr));
+ break;
+ }
}
}