xref: /netbsd-src/sys/external/bsd/compiler_rt/dist/lib/asan/asan_stack.cc (revision a7c257b03e4462df2b1020128fb82716512d7856)
1*a7c257b0Skamil //===-- asan_stack.cc -----------------------------------------------------===//
2*a7c257b0Skamil //
3*a7c257b0Skamil //                     The LLVM Compiler Infrastructure
4*a7c257b0Skamil //
5*a7c257b0Skamil // This file is distributed under the University of Illinois Open Source
6*a7c257b0Skamil // License. See LICENSE.TXT for details.
7*a7c257b0Skamil //
8*a7c257b0Skamil //===----------------------------------------------------------------------===//
9*a7c257b0Skamil //
10*a7c257b0Skamil // This file is a part of AddressSanitizer, an address sanity checker.
11*a7c257b0Skamil //
12*a7c257b0Skamil // Code for ASan stack trace.
13*a7c257b0Skamil //===----------------------------------------------------------------------===//
14*a7c257b0Skamil #include "asan_internal.h"
15*a7c257b0Skamil #include "asan_stack.h"
16*a7c257b0Skamil #include "sanitizer_common/sanitizer_atomic.h"
17*a7c257b0Skamil 
18*a7c257b0Skamil namespace __asan {
19*a7c257b0Skamil 
20*a7c257b0Skamil static atomic_uint32_t malloc_context_size;
21*a7c257b0Skamil 
SetMallocContextSize(u32 size)22*a7c257b0Skamil void SetMallocContextSize(u32 size) {
23*a7c257b0Skamil   atomic_store(&malloc_context_size, size, memory_order_release);
24*a7c257b0Skamil }
25*a7c257b0Skamil 
GetMallocContextSize()26*a7c257b0Skamil u32 GetMallocContextSize() {
27*a7c257b0Skamil   return atomic_load(&malloc_context_size, memory_order_acquire);
28*a7c257b0Skamil }
29*a7c257b0Skamil 
30*a7c257b0Skamil }  // namespace __asan
31*a7c257b0Skamil 
32*a7c257b0Skamil // ------------------ Interface -------------- {{{1
33*a7c257b0Skamil 
34*a7c257b0Skamil extern "C" {
35*a7c257b0Skamil SANITIZER_INTERFACE_ATTRIBUTE
__sanitizer_print_stack_trace()36*a7c257b0Skamil void __sanitizer_print_stack_trace() {
37*a7c257b0Skamil   using namespace __asan;
38*a7c257b0Skamil   PRINT_CURRENT_STACK();
39*a7c257b0Skamil }
40*a7c257b0Skamil }  // extern "C"
41