[PATCH] Only use fast stack unwinding for sanitizers failure reports on FreeBSD

Viktor Kutuzov vkutuzov at accesssoftek.com
Thu Jul 10 02:19:43 PDT 2014


Closed by commit rL212691 (authored by vkutuzov).

REPOSITORY
  rL LLVM

http://reviews.llvm.org/D4420

Files:
  compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.h

Index: compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.h
===================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.h
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.h
@@ -52,9 +52,12 @@
 
   static bool WillUseFastUnwind(bool request_fast_unwind) {
     // Check if fast unwind is available. Fast unwind is the only option on Mac.
+    // It is also the only option on FreeBSD as the slow unwinding that
+    // leverages _Unwind_Backtrace() yields the call stack of the signal's
+    // handler and not of the code that raised the signal (as it does on Linux).
     if (!SANITIZER_CAN_FAST_UNWIND)
       return false;
-    else if (SANITIZER_MAC)
+    else if (SANITIZER_MAC != 0 || SANITIZER_FREEBSD != 0)
       return true;
     return request_fast_unwind;
   }
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D4420.11249.patch
Type: text/x-patch
Size: 869 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140710/7ce08a8b/attachment.bin>


More information about the llvm-commits mailing list