[Sanitizer] Add rudimentary support for using libbacktrace in symbolizer.
[blocksruntime.git] / lib / sanitizer_common / sanitizer_symbolizer_libbacktrace.h
blobb9f60a9d1b7c17cbfa9794481280af336b3233e3
1 //===-- sanitizer_symbolizer_libbacktrace.h -------------------------------===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 // This file is shared between AddressSanitizer and ThreadSanitizer
11 // run-time libraries.
12 // Header for libbacktrace symbolizer.
13 //===----------------------------------------------------------------------===//
15 #include "sanitizer_platform.h"
16 #include "sanitizer_common.h"
17 #include "sanitizer_symbolizer.h"
19 #ifndef SANITIZER_LIBBACKTRACE
20 # define SANITIZER_LIBBACKTRACE 0
21 #endif
23 namespace __sanitizer {
25 class LibbacktraceSymbolizer {
26 public:
27 static LibbacktraceSymbolizer *get(LowLevelAllocator *alloc);
29 uptr SymbolizeCode(uptr addr, AddressInfo *frames, uptr max_frames,
30 const char *module_name, uptr module_offset);
32 bool SymbolizeData(DataInfo *info);
34 private:
35 explicit LibbacktraceSymbolizer(void *state) : state_(state) {}
37 void *state_; // Leaked.
40 } // namespace __sanitizer