Handle SI_KERNEL signal code for SIGSEGV exceptions.

Patch by Richard Mitton.

llvm-svn: 188075
diff --git a/lldb/source/Plugins/Process/Linux/ProcessMonitor.cpp b/lldb/source/Plugins/Process/Linux/ProcessMonitor.cpp
index e52d07c..f4b7200 100644
--- a/lldb/source/Plugins/Process/Linux/ProcessMonitor.cpp
+++ b/lldb/source/Plugins/Process/Linux/ProcessMonitor.cpp
@@ -1788,6 +1788,12 @@
     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;