diff options
Diffstat (limited to 'gnu/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.h')
| -rw-r--r-- | gnu/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.h | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/gnu/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.h b/gnu/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.h deleted file mode 100644 index 216cca8de4f..00000000000 --- a/gnu/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.h +++ /dev/null @@ -1,90 +0,0 @@ -//===- SymbolizableObjectFile.h ---------------------------------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -// This file declares the SymbolizableObjectFile class. -// -//===----------------------------------------------------------------------===// -#ifndef LLVM_LIB_DEBUGINFO_SYMBOLIZE_SYMBOLIZABLEOBJECTFILE_H -#define LLVM_LIB_DEBUGINFO_SYMBOLIZE_SYMBOLIZABLEOBJECTFILE_H - -#include "llvm/ADT/StringRef.h" -#include "llvm/DebugInfo/DIContext.h" -#include "llvm/DebugInfo/Symbolize/SymbolizableModule.h" -#include "llvm/Support/ErrorOr.h" -#include <cstdint> -#include <map> -#include <memory> -#include <string> -#include <system_error> - -namespace llvm { - -class DataExtractor; - -namespace symbolize { - -class SymbolizableObjectFile : public SymbolizableModule { -public: - static ErrorOr<std::unique_ptr<SymbolizableObjectFile>> - create(object::ObjectFile *Obj, std::unique_ptr<DIContext> DICtx); - - DILineInfo symbolizeCode(uint64_t ModuleOffset, FunctionNameKind FNKind, - bool UseSymbolTable) const override; - DIInliningInfo symbolizeInlinedCode(uint64_t ModuleOffset, - FunctionNameKind FNKind, - bool UseSymbolTable) const override; - DIGlobal symbolizeData(uint64_t ModuleOffset) const override; - - // Return true if this is a 32-bit x86 PE COFF module. - bool isWin32Module() const override; - - // Returns the preferred base of the module, i.e. where the loader would place - // it in memory assuming there were no conflicts. - uint64_t getModulePreferredBase() const override; - -private: - bool shouldOverrideWithSymbolTable(FunctionNameKind FNKind, - bool UseSymbolTable) const; - - bool getNameFromSymbolTable(object::SymbolRef::Type Type, uint64_t Address, - std::string &Name, uint64_t &Addr, - uint64_t &Size) const; - // For big-endian PowerPC64 ELF, OpdAddress is the address of the .opd - // (function descriptor) section and OpdExtractor refers to its contents. - std::error_code addSymbol(const object::SymbolRef &Symbol, - uint64_t SymbolSize, - DataExtractor *OpdExtractor = nullptr, - uint64_t OpdAddress = 0); - std::error_code addCoffExportSymbols(const object::COFFObjectFile *CoffObj); - - object::ObjectFile *Module; - std::unique_ptr<DIContext> DebugInfoContext; - - struct SymbolDesc { - uint64_t Addr; - // If size is 0, assume that symbol occupies the whole memory range up to - // the following symbol. - uint64_t Size; - - friend bool operator<(const SymbolDesc &s1, const SymbolDesc &s2) { - return s1.Addr < s2.Addr; - } - }; - std::map<SymbolDesc, StringRef> Functions; - std::map<SymbolDesc, StringRef> Objects; - - SymbolizableObjectFile(object::ObjectFile *Obj, - std::unique_ptr<DIContext> DICtx); -}; - -} // end namespace symbolize - -} // end namespace llvm - -#endif // LLVM_LIB_DEBUGINFO_SYMBOLIZE_SYMBOLIZABLEOBJECTFILE_H |
