[Lldb-commits] [PATCH] Fixed spurious SI_KERNEL codes.

Richard Mitton richard at codersnotes.com
Wed Aug 7 18:38:57 PDT 2013


Fixed a case where unaligned SIMD loads would cause an unrecognized exception.

(it's a shame we can't make this into an actual alignment bus error, but Intel CPUs don't support it)


http://llvm-reviews.chandlerc.com/D1321

Files:
  source/Plugins/Process/Linux/ProcessMonitor.cpp

Index: source/Plugins/Process/Linux/ProcessMonitor.cpp
===================================================================
--- source/Plugins/Process/Linux/ProcessMonitor.cpp
+++ 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;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D1321.1.patch
Type: text/x-patch
Size: 730 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20130807/05074e45/attachment.bin>


More information about the lldb-commits mailing list