]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_mac.h
Upgrade Unbound to 1.8.0. More to follow.
[FreeBSD/FreeBSD.git] / contrib / compiler-rt / lib / sanitizer_common / sanitizer_symbolizer_mac.h
1 //===-- sanitizer_symbolizer_mac.h ------------------------------*- C++ -*-===//
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 various sanitizers' runtime libraries.
11 //
12 // Header for Mac-specific "atos" symbolizer.
13 //===----------------------------------------------------------------------===//
14
15 #ifndef SANITIZER_SYMBOLIZER_MAC_H
16 #define SANITIZER_SYMBOLIZER_MAC_H
17
18 #include "sanitizer_platform.h"
19 #if SANITIZER_MAC
20
21 #include "sanitizer_symbolizer_internal.h"
22
23 namespace __sanitizer {
24
25 class DlAddrSymbolizer : public SymbolizerTool {
26  public:
27   bool SymbolizePC(uptr addr, SymbolizedStack *stack) override;
28   bool SymbolizeData(uptr addr, DataInfo *info) override;
29 };
30
31 class AtosSymbolizerProcess;
32
33 class AtosSymbolizer : public SymbolizerTool {
34  public:
35   explicit AtosSymbolizer(const char *path, LowLevelAllocator *allocator);
36
37   bool SymbolizePC(uptr addr, SymbolizedStack *stack) override;
38   bool SymbolizeData(uptr addr, DataInfo *info) override;
39
40  private:
41   AtosSymbolizerProcess *process_;
42 };
43
44 } // namespace __sanitizer
45
46 #endif  // SANITIZER_MAC
47
48 #endif // SANITIZER_SYMBOLIZER_MAC_H