diff options
author | Matt Kopec <Matt.Kopec@intel.com> | 2013-08-09 15:26:56 +0000 |
---|---|---|
committer | Matt Kopec <Matt.Kopec@intel.com> | 2013-08-09 15:26:56 +0000 |
commit | f8cfe6b73a4345d5b92fcf761bdb06b168edf229 (patch) | |
tree | 48ba65a648fb2d14c35922a77f8ae8d71b29e816 /lldb/source/Plugins/Process/Linux/ProcessMonitor.cpp | |
parent | df03449a0a315c933f7dca6904a4ef0f56415d1b (diff) | |
download | bcm5719-llvm-f8cfe6b73a4345d5b92fcf761bdb06b168edf229.tar.gz bcm5719-llvm-f8cfe6b73a4345d5b92fcf761bdb06b168edf229.zip |
Handle SI_KERNEL signal code for SIGSEGV exceptions.
Patch by Richard Mitton.
llvm-svn: 188075
Diffstat (limited to 'lldb/source/Plugins/Process/Linux/ProcessMonitor.cpp')
-rw-r--r-- | lldb/source/Plugins/Process/Linux/ProcessMonitor.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lldb/source/Plugins/Process/Linux/ProcessMonitor.cpp b/lldb/source/Plugins/Process/Linux/ProcessMonitor.cpp index e52d07ce58a..f4b72006ee7 100644 --- a/lldb/source/Plugins/Process/Linux/ProcessMonitor.cpp +++ b/lldb/source/Plugins/Process/Linux/ProcessMonitor.cpp @@ -1788,6 +1788,12 @@ ProcessMonitor::GetCrashReasonForSIGSEGV(const siginfo_t *info) default: assert(false && "unexpected si_code for SIGSEGV"); break; + case SI_KERNEL: + // Linux will occasionally send spurious SI_KERNEL codes. + // (this is poorly documented in sigaction) + // One way to get this is via unaligned SIMD loads. + reason = ProcessMessage::eInvalidAddress; // for lack of anything better + break; case SEGV_MAPERR: reason = ProcessMessage::eInvalidAddress; break; |