1287516Sdim//===-- sanitizer_symbolizer_mac.h ------------------------------*- C++ -*-===// 2287516Sdim// 3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4353358Sdim// See https://llvm.org/LICENSE.txt for license information. 5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6287516Sdim// 7287516Sdim//===----------------------------------------------------------------------===// 8287516Sdim// 9287516Sdim// This file is shared between various sanitizers' runtime libraries. 10287516Sdim// 11287516Sdim// Header for Mac-specific "atos" symbolizer. 12287516Sdim//===----------------------------------------------------------------------===// 13287516Sdim 14287516Sdim#ifndef SANITIZER_SYMBOLIZER_MAC_H 15287516Sdim#define SANITIZER_SYMBOLIZER_MAC_H 16287516Sdim 17287516Sdim#include "sanitizer_platform.h" 18287516Sdim#if SANITIZER_MAC 19287516Sdim 20287516Sdim#include "sanitizer_symbolizer_internal.h" 21287516Sdim 22287516Sdimnamespace __sanitizer { 23287516Sdim 24287516Sdimclass DlAddrSymbolizer : public SymbolizerTool { 25287516Sdim public: 26287516Sdim bool SymbolizePC(uptr addr, SymbolizedStack *stack) override; 27287516Sdim bool SymbolizeData(uptr addr, DataInfo *info) override; 28287516Sdim}; 29287516Sdim 30287516Sdimclass AtosSymbolizerProcess; 31287516Sdim 32287516Sdimclass AtosSymbolizer : public SymbolizerTool { 33287516Sdim public: 34287516Sdim explicit AtosSymbolizer(const char *path, LowLevelAllocator *allocator); 35287516Sdim 36287516Sdim bool SymbolizePC(uptr addr, SymbolizedStack *stack) override; 37287516Sdim bool SymbolizeData(uptr addr, DataInfo *info) override; 38287516Sdim 39287516Sdim private: 40287516Sdim AtosSymbolizerProcess *process_; 41287516Sdim}; 42287516Sdim 43287516Sdim} // namespace __sanitizer 44287516Sdim 45287516Sdim#endif // SANITIZER_MAC 46287516Sdim 47287516Sdim#endif // SANITIZER_SYMBOLIZER_MAC_H 48