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