Use _Unwind_Backtrace on Apple platforms.
authorBob Wilson <bob.wilson@apple.com>
Mon, 14 Nov 2016 17:56:18 +0000 (17:56 +0000)
committerBob Wilson <bob.wilson@apple.com>
Mon, 14 Nov 2016 17:56:18 +0000 (17:56 +0000)
commitd7bef6972dcf7729f95affba26f7cb9ab0a98652
tree6d8068abdc9b7b794a456d1431f4f76b86fc209e
parent171a7022aa50af1d22d298ccf7251c2a0fc71100
Use _Unwind_Backtrace on Apple platforms.

Darwin's backtrace() function does not work with sigaltstack (which was
enabled when available with r270395) — it does a sanity check to make
sure that the current frame pointer is within the expected stack area
(which it is not when using an alternate stack) and gives up otherwise.
The alternative of _Unwind_Backtrace seems to work fine on macOS, so use
that when backtrace() fails. Note that we then use backtrace_symbols_fd()
with the addresses from _Unwind_Backtrace, but I’ve tested that and it
also seems to work fine. rdar://problem/28646552

llvm-svn: 286851
llvm/lib/Support/Unix/Signals.inc