1251034Sed//=-- lsan.h --------------------------------------------------------------===// 2251034Sed// 3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4353358Sdim// See https://llvm.org/LICENSE.txt for license information. 5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6251034Sed// 7251034Sed//===----------------------------------------------------------------------===// 8251034Sed// 9251034Sed// This file is a part of LeakSanitizer. 10251034Sed// Private header for standalone LSan RTL. 11251034Sed// 12251034Sed//===----------------------------------------------------------------------===// 13251034Sed 14327952Sdim#include "lsan_thread.h" 15251034Sed#include "sanitizer_common/sanitizer_flags.h" 16251034Sed#include "sanitizer_common/sanitizer_stacktrace.h" 17251034Sed 18327952Sdim#define GET_STACK_TRACE(max_size, fast) \ 19327952Sdim __sanitizer::BufferedStackTrace stack; \ 20353358Sdim stack.Unwind(StackTrace::GetCurrentPc(), \ 21353358Sdim GET_CURRENT_FRAME(), nullptr, fast, max_size); 22276789Sdim 23276789Sdim#define GET_STACK_TRACE_FATAL \ 24276789Sdim GET_STACK_TRACE(kStackTraceMax, common_flags()->fast_unwind_on_fatal) 25276789Sdim 26276789Sdim#define GET_STACK_TRACE_MALLOC \ 27276789Sdim GET_STACK_TRACE(__sanitizer::common_flags()->malloc_context_size, \ 28276789Sdim common_flags()->fast_unwind_on_malloc) 29276789Sdim 30321369Sdim#define GET_STACK_TRACE_THREAD GET_STACK_TRACE(kStackTraceMax, true) 31321369Sdim 32251034Sednamespace __lsan { 33251034Sed 34251034Sedvoid InitializeInterceptors(); 35321369Sdimvoid ReplaceSystemMalloc(); 36251034Sed 37321369Sdim#define ENSURE_LSAN_INITED do { \ 38321369Sdim CHECK(!lsan_init_is_running); \ 39321369Sdim if (!lsan_inited) \ 40321369Sdim __lsan_init(); \ 41321369Sdim} while (0) 42321369Sdim 43251034Sed} // namespace __lsan 44274201Sdim 45274201Sdimextern bool lsan_inited; 46274201Sdimextern bool lsan_init_is_running; 47274201Sdim 48327952Sdimextern "C" SANITIZER_INTERFACE_ATTRIBUTE void __lsan_init(); 49