21 using namespace llvm::object;
23 #define DEBUG_TYPE "dyld"
27 class LoadedCOFFObjectInfo
32 : LoadedObjectInfoHelper(RTDyld, BeginIdx, EndIdx) {}
35 getObjectForDebug(
const ObjectFile &Obj)
const override {
43 std::unique_ptr<RuntimeDyldCOFF>
52 return make_unique<RuntimeDyldCOFFX86_64>(MemMgr, Resolver);
56 std::unique_ptr<RuntimeDyld::LoadedObjectInfo>
58 unsigned SectionStartIdx, SectionEndIdx;
59 std::tie(SectionStartIdx, SectionEndIdx) = loadObjectImpl(O);
60 return llvm::make_unique<LoadedCOFFObjectInfo>(*
this, SectionStartIdx,
bool isCompatibleFile(const object::ObjectFile &Obj) const override
This class is the base class for all object file types.
uint64_t getSymbolOffset(const SymbolRef &Sym)
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
static std::unique_ptr< RuntimeDyldCOFF > create(Triple::ArchType Arch, RuntimeDyld::MemoryManager &MemMgr, RuntimeDyld::SymbolResolver &Resolver)
This is a value type class that represents a single symbol in the list of symbols in the object file...
uint64_t getValue() const
Return the value of the symbol depending on the object this can be an offset or a virtual address...
std::unique_ptr< RuntimeDyld::LoadedObjectInfo > loadObject(const object::ObjectFile &Obj) override