diff options
Diffstat (limited to 'compiler-rt/lib/asan/asan_stack.cc')
-rw-r--r-- | compiler-rt/lib/asan/asan_stack.cc | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/compiler-rt/lib/asan/asan_stack.cc b/compiler-rt/lib/asan/asan_stack.cc index 664f0d05648..f5a8e813b99 100644 --- a/compiler-rt/lib/asan/asan_stack.cc +++ b/compiler-rt/lib/asan/asan_stack.cc @@ -26,6 +26,20 @@ u32 GetMallocContextSize() { return atomic_load(&malloc_context_size, memory_order_acquire); } +namespace { + +// ScopedUnwinding is a scope for stacktracing member of a context +class ScopedUnwinding { + public: + explicit ScopedUnwinding(AsanThread *t) : thread(t) { t->setUnwinding(true); } + ~ScopedUnwinding() { thread->setUnwinding(false); } + + private: + AsanThread *thread; +}; + +} // namespace + } // namespace __asan void __sanitizer::BufferedStackTrace::UnwindImpl( |