]> granicus.if.org Git - clang/commitdiff
[docs] UBSan: Mention that print_stacktrace=1 is unsupported on Darwin
authorVedant Kumar <vsk@apple.com>
Fri, 14 Apr 2017 01:59:44 +0000 (01:59 +0000)
committerVedant Kumar <vsk@apple.com>
Fri, 14 Apr 2017 01:59:44 +0000 (01:59 +0000)
Printing out stack traces along with UBSan diagnostics is unsupported on
Darwin. That's because it isn't possible to use the fast unwinder or the
slow unwinder.

Apparently, it's inappropriate to use the fast unwinder for UBSan
issues. I'm not exactly sure why (see the comment in ubsan_diag.cc).
Forcing use of the fast unwinder produces decent results, AFAICT.

Darwin also does not appear to have a slow unwinder suitable for use
with the sanitizers. Apparently that's because of PR20800 [1][2]. But
that bug has been fixed. I'm not sure if there is anything preventing
use of the slow unwinder now.

Currently, passing UBSAN_OPTIONS=print_stacktrace=1 does nothing on
Darwin. This isn't good, but it might be a while before we can fix the
situation, so we should at least document it.

[1] https://github.com/google/sanitizers/issues/137
"We can't use the slow unwinder on OSX now, because Clang produces
incorrect unwind info for the ASan runtime functions on OSX
(http://llvm.org/PR20800)."

[2] https://bugs.llvm.org/show_bug.cgi?id=20800
Bug 20800 - Invalid compact unwind info generated for a function without
frame pointers on OSX

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@300295 91177308-0d34-0410-b5e6-96231b3b80d8

docs/UndefinedBehaviorSanitizer.rst

index d6fdad2a0c0118ae70e820b2771ab3e295aa4f49..9bec5506359ff93a38b3468e2dbf02a3f5e058a8 100644 (file)
@@ -157,6 +157,8 @@ will need to:
    ``UBSAN_OPTIONS=print_stacktrace=1``.
 #. Make sure ``llvm-symbolizer`` binary is in ``PATH``.
 
+Stacktrace printing for UBSan issues is currently not supported on Darwin.
+
 Issue Suppression
 =================