summaryrefslogtreecommitdiffstats
path: root/gnu/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.h
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.h')
-rw-r--r--gnu/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.h90
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