class ELFDebugObject
Declaration
class ELFDebugObject : public DebugObject { /* full declaration omitted */ };
Description
The current implementation of ELFDebugObject replicates the approach used in RuntimeDyld: It patches executable and data section headers in the given object buffer with load-addresses of their corresponding sections in target memory.
Declared at: llvm/lib/ExecutionEngine/Orc/DebugObjectManagerPlugin.cpp:194
Inherits from: DebugObject
Member Variables
- private std::unique_ptr<WritableMemoryBuffer> Buffer
- private StringMap<std::unique_ptr<DebugObjectSection>> Sections
Inherited from DebugObject:
- protected MemMgr
- protected JD = nullptr
Method Overview
- private static std::unique_ptr<WritableMemoryBuffer> CopyBuffer(llvm::MemoryBufferRef Buffer, llvm::Error & Err)
- public static Expected<std::unique_ptr<DebugObject>> Create(llvm::MemoryBufferRef Buffer, llvm::jitlink::JITLinkContext & Ctx, llvm::orc::ExecutionSession & ES)
- private template <typename ELFT>static Expected<std::unique_ptr<ELFDebugObject>> CreateArchType(llvm::MemoryBufferRef Buffer, llvm::jitlink::JITLinkMemoryManager & MemMgr, const llvm::jitlink::JITLinkDylib * JD, llvm::orc::ExecutionSession & ES)
- private ELFDebugObject(std::unique_ptr<WritableMemoryBuffer> Buffer, llvm::jitlink::JITLinkMemoryManager & MemMgr, const llvm::jitlink::JITLinkDylib * JD, llvm::orc::ExecutionSession & ES)
- protected Expected<llvm::jitlink::SimpleSegmentAlloc> finalizeWorkingMemory()
- public llvm::StringRef getBuffer() const
- protected llvm::orc::DebugObjectSection * getSection(llvm::StringRef Name)
- protected template <typename ELFT>llvm::Error recordSection(llvm::StringRef Name, std::unique_ptr<ELFDebugObjectSection<ELFT>> Section)
- public void reportSectionTargetMemoryRange(llvm::StringRef Name, llvm::jitlink::SectionRange TargetMem)
Inherited from DebugObject:
- public finalizeAsync
- protected finalizeWorkingMemory
- public has
- public reportSectionTargetMemoryRange
- public set
Methods
¶static std::unique_ptr<WritableMemoryBuffer>
CopyBuffer(llvm::MemoryBufferRef Buffer,
llvm::Error& Err)
static std::unique_ptr<WritableMemoryBuffer>
CopyBuffer(llvm::MemoryBufferRef Buffer,
llvm::Error& Err)
Declared at: llvm/lib/ExecutionEngine/Orc/DebugObjectManagerPlugin.cpp:219
Parameters
- llvm::MemoryBufferRef Buffer
- llvm::Error& Err
¶static Expected<std::unique_ptr<DebugObject>>
Create(llvm::MemoryBufferRef Buffer,
llvm::jitlink::JITLinkContext& Ctx,
llvm::orc::ExecutionSession& ES)
static Expected<std::unique_ptr<DebugObject>>
Create(llvm::MemoryBufferRef Buffer,
llvm::jitlink::JITLinkContext& Ctx,
llvm::orc::ExecutionSession& ES)
Declared at: llvm/lib/ExecutionEngine/Orc/DebugObjectManagerPlugin.cpp:197
Parameters
¶template <typename ELFT>
static Expected<std::unique_ptr<ELFDebugObject>>
CreateArchType(
llvm::MemoryBufferRef Buffer,
llvm::jitlink::JITLinkMemoryManager& MemMgr,
const llvm::jitlink::JITLinkDylib* JD,
llvm::orc::ExecutionSession& ES)
template <typename ELFT>
static Expected<std::unique_ptr<ELFDebugObject>>
CreateArchType(
llvm::MemoryBufferRef Buffer,
llvm::jitlink::JITLinkMemoryManager& MemMgr,
const llvm::jitlink::JITLinkDylib* JD,
llvm::orc::ExecutionSession& ES)
Declared at: llvm/lib/ExecutionEngine/Orc/DebugObjectManagerPlugin.cpp:215
Templates
- ELFT
Parameters
- llvm::MemoryBufferRef Buffer
- llvm::jitlink::JITLinkMemoryManager& MemMgr
- const llvm::jitlink::JITLinkDylib* JD
- llvm::orc::ExecutionSession& ES
¶ELFDebugObject(
std::unique_ptr<WritableMemoryBuffer> Buffer,
llvm::jitlink::JITLinkMemoryManager& MemMgr,
const llvm::jitlink::JITLinkDylib* JD,
llvm::orc::ExecutionSession& ES)
ELFDebugObject(
std::unique_ptr<WritableMemoryBuffer> Buffer,
llvm::jitlink::JITLinkMemoryManager& MemMgr,
const llvm::jitlink::JITLinkDylib* JD,
llvm::orc::ExecutionSession& ES)
Declared at: llvm/lib/ExecutionEngine/Orc/DebugObjectManagerPlugin.cpp:221
Parameters
- std::unique_ptr<WritableMemoryBuffer> Buffer
- llvm::jitlink::JITLinkMemoryManager& MemMgr
- const llvm::jitlink::JITLinkDylib* JD
- llvm::orc::ExecutionSession& ES
¶Expected<llvm::jitlink::SimpleSegmentAlloc>
finalizeWorkingMemory()
Expected<llvm::jitlink::SimpleSegmentAlloc>
finalizeWorkingMemory()
Declared at: llvm/lib/ExecutionEngine/Orc/DebugObjectManagerPlugin.cpp:205
¶llvm::StringRef getBuffer() const
llvm::StringRef getBuffer() const
Declared at: llvm/lib/ExecutionEngine/Orc/DebugObjectManagerPlugin.cpp:202
¶llvm::orc::DebugObjectSection* getSection(
llvm::StringRef Name)
llvm::orc::DebugObjectSection* getSection(
llvm::StringRef Name)
Declared at: llvm/lib/ExecutionEngine/Orc/DebugObjectManagerPlugin.cpp:210
Parameters
- llvm::StringRef Name
¶template <typename ELFT>
llvm::Error recordSection(
llvm::StringRef Name,
std::unique_ptr<ELFDebugObjectSection<ELFT>>
Section)
template <typename ELFT>
llvm::Error recordSection(
llvm::StringRef Name,
std::unique_ptr<ELFDebugObjectSection<ELFT>>
Section)
Declared at: llvm/lib/ExecutionEngine/Orc/DebugObjectManagerPlugin.cpp:208
Templates
- ELFT
Parameters
- llvm::StringRef Name
- std::unique_ptr<ELFDebugObjectSection<ELFT>> Section
¶void reportSectionTargetMemoryRange(
llvm::StringRef Name,
llvm::jitlink::SectionRange TargetMem)
void reportSectionTargetMemoryRange(
llvm::StringRef Name,
llvm::jitlink::SectionRange TargetMem)
Declared at: llvm/lib/ExecutionEngine/Orc/DebugObjectManagerPlugin.cpp:199
Parameters
- llvm::StringRef Name
- llvm::jitlink::SectionRange TargetMem