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
23namespace __sanitizer {
24
25class DlAddrSymbolizer : public SymbolizerTool {
26 public:
27  bool SymbolizePC(uptr addr, SymbolizedStack *stack) override;
28  bool SymbolizeData(uptr addr, DataInfo *info) override;
29};
30
31class AtosSymbolizerProcess;
32
33class 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