brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · 0074ad5 Raw
58 lines · c
1//=-- lsan.h --------------------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8//9// This file is a part of LeakSanitizer.10// Private header for standalone LSan RTL.11//12//===----------------------------------------------------------------------===//13 14#include "lsan_thread.h"15#if SANITIZER_POSIX16#  include "lsan_posix.h"17#elif SANITIZER_FUCHSIA18#  include "lsan_fuchsia.h"19#endif20#include "sanitizer_common/sanitizer_flags.h"21#include "sanitizer_common/sanitizer_stacktrace.h"22 23#define GET_STACK_TRACE(max_size, fast)                                        \24  __sanitizer::BufferedStackTrace stack;                                       \25  stack.Unwind(StackTrace::GetCurrentPc(), GET_CURRENT_FRAME(), nullptr, fast, \26               max_size);27 28#define GET_STACK_TRACE_FATAL \29  GET_STACK_TRACE(kStackTraceMax, common_flags()->fast_unwind_on_fatal)30 31#define GET_STACK_TRACE_MALLOC                                      \32  GET_STACK_TRACE(__sanitizer::common_flags()->malloc_context_size, \33                  common_flags()->fast_unwind_on_malloc)34 35#define GET_STACK_TRACE_THREAD GET_STACK_TRACE(kStackTraceMax, true)36 37namespace __lsan {38 39void InitializeInterceptors();40void ReplaceSystemMalloc();41void LsanOnDeadlySignal(int signo, void *siginfo, void *context);42void InstallAtExitCheckLeaks();43void InstallAtForkHandler();44 45#define ENSURE_LSAN_INITED        \46  do {                            \47    CHECK(!lsan_init_is_running); \48    if (!lsan_inited)             \49      __lsan_init();              \50  } while (0)51 52}  // namespace __lsan53 54extern bool lsan_inited;55extern bool lsan_init_is_running;56 57extern "C" SANITIZER_INTERFACE_ATTRIBUTE void __lsan_init();58