1287516Sdim//===-- sanitizer_symbolizer_mac.h ------------------------------*- C++ -*-===//
2287516Sdim//
3287516Sdim//                     The LLVM Compiler Infrastructure
4287516Sdim//
5287516Sdim// This file is distributed under the University of Illinois Open Source
6287516Sdim// License. See LICENSE.TXT for details.
7287516Sdim//
8287516Sdim//===----------------------------------------------------------------------===//
9287516Sdim//
10287516Sdim// This file is shared between various sanitizers' runtime libraries.
11287516Sdim//
12287516Sdim// Header for Mac-specific "atos" symbolizer.
13287516Sdim//===----------------------------------------------------------------------===//
14287516Sdim
15287516Sdim#ifndef SANITIZER_SYMBOLIZER_MAC_H
16287516Sdim#define SANITIZER_SYMBOLIZER_MAC_H
17287516Sdim
18287516Sdim#include "sanitizer_platform.h"
19287516Sdim#if SANITIZER_MAC
20287516Sdim
21287516Sdim#include "sanitizer_symbolizer_internal.h"
22287516Sdim
23287516Sdimnamespace __sanitizer {
24287516Sdim
25287516Sdimclass DlAddrSymbolizer : public SymbolizerTool {
26287516Sdim public:
27287516Sdim  bool SymbolizePC(uptr addr, SymbolizedStack *stack) override;
28287516Sdim  bool SymbolizeData(uptr addr, DataInfo *info) override;
29287516Sdim};
30287516Sdim
31287516Sdimclass AtosSymbolizerProcess;
32287516Sdim
33287516Sdimclass AtosSymbolizer : public SymbolizerTool {
34287516Sdim public:
35287516Sdim  explicit AtosSymbolizer(const char *path, LowLevelAllocator *allocator);
36287516Sdim
37287516Sdim  bool SymbolizePC(uptr addr, SymbolizedStack *stack) override;
38287516Sdim  bool SymbolizeData(uptr addr, DataInfo *info) override;
39287516Sdim
40287516Sdim private:
41287516Sdim  AtosSymbolizerProcess *process_;
42287516Sdim};
43287516Sdim
44287516Sdim} // namespace __sanitizer
45287516Sdim
46287516Sdim#endif  // SANITIZER_MAC
47287516Sdim
48287516Sdim#endif // SANITIZER_SYMBOLIZER_MAC_H
49