1//===-- sanitizer_symbolizer_mac.h ------------------------------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// This file is shared between various sanitizers' runtime libraries.
10//
11// Header for Mac-specific "atos" symbolizer.
12//===----------------------------------------------------------------------===//
13
14#ifndef SANITIZER_SYMBOLIZER_MAC_H
15#define SANITIZER_SYMBOLIZER_MAC_H
16
17#include "sanitizer_platform.h"
18#if SANITIZER_APPLE
19
20#include "sanitizer_symbolizer_internal.h"
21
22namespace __sanitizer {
23
24class DlAddrSymbolizer final : public SymbolizerTool {
25 public:
26 bool SymbolizePC(uptr addr, SymbolizedStack *stack) override;
27 bool SymbolizeData(uptr addr, DataInfo *info) override;
28};
29
30class AtosSymbolizerProcess;
31
32class AtosSymbolizer final : public SymbolizerTool {
33 public:
34 explicit AtosSymbolizer(const char *path, LowLevelAllocator *allocator);
35
36 bool SymbolizePC(uptr addr, SymbolizedStack *stack) override;
37 bool SymbolizeData(uptr addr, DataInfo *info) override;
38
39 private:
40 AtosSymbolizerProcess *process_;
41};
42
43} // namespace __sanitizer
44
45#endif // SANITIZER_APPLE
46
47#endif // SANITIZER_SYMBOLIZER_MAC_H
48

source code of compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_mac.h