xref: /netbsd-src/external/gpl3/gcc.old/dist/libsanitizer/sanitizer_common/sanitizer_symbolizer_mac.h (revision 1debfc3d3fad8af6f31804271c18e67f77b4d718)
1 //===-- sanitizer_symbolizer_mac.h ------------------------------*- C++ -*-===//
2 //
3 // This file is distributed under the University of Illinois Open Source
4 // License. See LICENSE.TXT for details.
5 //
6 //===----------------------------------------------------------------------===//
7 //
8 // This file is shared between various sanitizers' runtime libraries.
9 //
10 // Header for Mac-specific "atos" symbolizer.
11 //===----------------------------------------------------------------------===//
12 
13 #ifndef SANITIZER_SYMBOLIZER_MAC_H
14 #define SANITIZER_SYMBOLIZER_MAC_H
15 
16 #include "sanitizer_platform.h"
17 #if SANITIZER_MAC
18 
19 #include "sanitizer_symbolizer_internal.h"
20 
21 namespace __sanitizer {
22 
23 class DlAddrSymbolizer : public SymbolizerTool {
24  public:
25   bool SymbolizePC(uptr addr, SymbolizedStack *stack) override;
26   bool SymbolizeData(uptr addr, DataInfo *info) override;
27 };
28 
29 class AtosSymbolizerProcess;
30 
31 class AtosSymbolizer : public SymbolizerTool {
32  public:
33   explicit AtosSymbolizer(const char *path, LowLevelAllocator *allocator);
34 
35   bool SymbolizePC(uptr addr, SymbolizedStack *stack) override;
36   bool SymbolizeData(uptr addr, DataInfo *info) override;
37 
38  private:
39   AtosSymbolizerProcess *process_;
40 };
41 
42 } // namespace __sanitizer
43 
44 #endif  // SANITIZER_MAC
45 
46 #endif // SANITIZER_SYMBOLIZER_MAC_H
47