summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/Process/Linux
diff options
context:
space:
mode:
authorMatt Kopec <Matt.Kopec@intel.com>2013-08-09 15:26:56 +0000
committerMatt Kopec <Matt.Kopec@intel.com>2013-08-09 15:26:56 +0000
commitf8cfe6b73a4345d5b92fcf761bdb06b168edf229 (patch)
tree48ba65a648fb2d14c35922a77f8ae8d71b29e816 /lldb/source/Plugins/Process/Linux
parentdf03449a0a315c933f7dca6904a4ef0f56415d1b (diff)
downloadbcm5719-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')
-rw-r--r--lldb/source/Plugins/Process/Linux/ProcessMonitor.cpp6
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;
OpenPOWER on IntegriCloud