Thanks to visit codestin.com
Credit goes to llvm.org

LLVM 22.0.0git
llvm::orc::ELFDebugObject Class Reference

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. More...

Inheritance diagram for llvm::orc::ELFDebugObject:
[legend]

Public Member Functions

void reportSectionTargetMemoryRange (StringRef Name, SectionRange TargetMem) override
StringRef getBuffer () const
Public Member Functions inherited from llvm::orc::DebugObject
 DebugObject (JITLinkMemoryManager &MemMgr, const JITLinkDylib *JD, ExecutionSession &ES)
bool hasFlags (DebugObjectFlags F) const
void setFlags (DebugObjectFlags F)
void clearFlags (DebugObjectFlags F)
void finalizeAsync (FinalizeContinuation OnFinalize)
virtual ~DebugObject ()

Static Public Member Functions

static Expected< std::unique_ptr< DebugObject > > Create (MemoryBufferRef Buffer, JITLinkContext &Ctx, ExecutionSession &ES)

Protected Member Functions

Expected< SimpleSegmentAllocfinalizeWorkingMemory () override
template<typename ELFT>
Error recordSection (StringRef Name, std::unique_ptr< ELFDebugObjectSection< ELFT > > Section)
DebugObjectSectiongetSection (StringRef Name)

Additional Inherited Members

Public Types inherited from llvm::orc::DebugObject
using FinalizeContinuation = std::function<void(Expected<ExecutorAddrRange>)>
Protected Types inherited from llvm::orc::DebugObject
using InFlightAlloc = JITLinkMemoryManager::InFlightAlloc
using FinalizedAlloc = JITLinkMemoryManager::FinalizedAlloc
Protected Attributes inherited from llvm::orc::DebugObject
JITLinkMemoryManagerMemMgr
const JITLinkDylibJD = nullptr
ExecutionSessionES

Detailed 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.

Definition at line 186 of file DebugObjectManagerPlugin.cpp.

Member Function Documentation

◆ Create()

◆ finalizeWorkingMemory()

◆ getBuffer()

StringRef llvm::orc::ELFDebugObject::getBuffer ( ) const
inline

Definition at line 194 of file DebugObjectManagerPlugin.cpp.

◆ getSection()

DebugObjectSection * llvm::orc::ELFDebugObject::getSection ( StringRef Name)
protected

Definition at line 367 of file DebugObjectManagerPlugin.cpp.

References getSection().

Referenced by getSection().

◆ recordSection()

template<typename ELFT>
Error llvm::orc::ELFDebugObject::recordSection ( StringRef Name,
std::unique_ptr< ELFDebugObjectSection< ELFT > > Section )
protected

Definition at line 355 of file DebugObjectManagerPlugin.cpp.

References llvm::dbgs(), LLVM_DEBUG, recordSection(), and llvm::Error::success().

Referenced by recordSection().

◆ reportSectionTargetMemoryRange()

void llvm::orc::ELFDebugObject::reportSectionTargetMemoryRange ( StringRef Name,
SectionRange TargetMem )
overridevirtual

The documentation for this class was generated from the following file: