diff options
author | Kostya Serebryany <kcc@google.com> | 2013-09-18 10:35:12 +0000 |
---|---|---|
committer | Kostya Serebryany <kcc@google.com> | 2013-09-18 10:35:12 +0000 |
commit | 230e52f4e91b53f05ce19dbbf11047f4a0113483 (patch) | |
tree | 192044531c0e867be0744c13956acaf3aafbdd89 /lib/asan/asan_thread.cc | |
parent | 608609429a2202e0342c13bc037368c8d678591c (diff) |
[asan] add a run-time option detect_stack_use_after_return, add verbosity output for fake stack
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@190932 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/asan/asan_thread.cc')
-rw-r--r-- | lib/asan/asan_thread.cc | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/asan/asan_thread.cc b/lib/asan/asan_thread.cc index 322caa8ac..5c2289491 100644 --- a/lib/asan/asan_thread.cc +++ b/lib/asan/asan_thread.cc @@ -123,8 +123,14 @@ FakeStack *AsanThread::AsyncSignalSafeLazyInitFakeStack() { if (atomic_compare_exchange_strong( reinterpret_cast<atomic_uintptr_t *>(&fake_stack_), &old_val, 1UL, memory_order_relaxed)) { - fake_stack_ = FakeStack::Create(Log2(RoundUpToPowerOfTwo(stack_size))); + uptr stack_size_log = Log2(RoundUpToPowerOfTwo(stack_size)); + fake_stack_ = FakeStack::Create(stack_size_log); SetTLSFakeStack(fake_stack_); + if (flags()->verbosity) { + u8 *p = reinterpret_cast<u8 *>(fake_stack_); + Report("T%d: FakeStack created: %p -- %p\n", tid(), p, + p + FakeStack::RequiredSize(stack_size_log)); + } return fake_stack_; } return 0; |