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;
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;
_______________________________________________
lldb-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits