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