2018-02-12 Thomas Koenig <tkoenig@gcc.gnu.org>
[official-gcc.git] / libsanitizer / sanitizer_common / sanitizer_symbolizer_mac.h
blob240c538d93d4fafd0f9fdbf504caf02ff9eb4215
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 //===----------------------------------------------------------------------===//
13 #ifndef SANITIZER_SYMBOLIZER_MAC_H
14 #define SANITIZER_SYMBOLIZER_MAC_H
16 #include "sanitizer_platform.h"
17 #if SANITIZER_MAC
19 #include "sanitizer_symbolizer_internal.h"
21 namespace __sanitizer {
23 class DlAddrSymbolizer : public SymbolizerTool {
24 public:
25 bool SymbolizePC(uptr addr, SymbolizedStack *stack) override;
26 bool SymbolizeData(uptr addr, DataInfo *info) override;
29 class AtosSymbolizerProcess;
31 class AtosSymbolizer : public SymbolizerTool {
32 public:
33 explicit AtosSymbolizer(const char *path, LowLevelAllocator *allocator);
35 bool SymbolizePC(uptr addr, SymbolizedStack *stack) override;
36 bool SymbolizeData(uptr addr, DataInfo *info) override;
38 private:
39 AtosSymbolizerProcess *process_;
42 } // namespace __sanitizer
44 #endif // SANITIZER_MAC
46 #endif // SANITIZER_SYMBOLIZER_MAC_H