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
49