LLVM
15.0.0git
|
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...
Public Member Functions | |
void | reportSectionTargetMemoryRange (StringRef Name, SectionRange TargetMem) override |
StringRef | getBuffer () const |
![]() | |
DebugObject (JITLinkMemoryManager &MemMgr, const JITLinkDylib *JD, ExecutionSession &ES) | |
void | set (Requirement Req) |
bool | has (Requirement Req) const |
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< SimpleSegmentAlloc > | finalizeWorkingMemory () override |
template<typename ELFT > | |
Error | recordSection (StringRef Name, std::unique_ptr< ELFDebugObjectSection< ELFT >> Section) |
DebugObjectSection * | getSection (StringRef Name) |
Additional Inherited Members | |
![]() | |
using | FinalizeContinuation = std::function< void(Expected< ExecutorAddrRange >)> |
![]() | |
using | InFlightAlloc = JITLinkMemoryManager::InFlightAlloc |
using | FinalizedAlloc = JITLinkMemoryManager::FinalizedAlloc |
![]() | |
JITLinkMemoryManager & | MemMgr |
const JITLinkDylib * | JD = nullptr |
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 194 of file DebugObjectManagerPlugin.cpp.
|
static |
Definition at line 308 of file DebugObjectManagerPlugin.cpp.
References llvm::ELF::ELFCLASS32, llvm::ELF::ELFCLASS64, llvm::ELF::ELFDATA2LSB, llvm::ELF::ELFDATA2MSB, llvm::MemoryBufferRef::getBuffer(), llvm::object::getElfArchType(), llvm::jitlink::JITLinkContext::getJITLinkDylib(), and llvm::jitlink::JITLinkContext::getMemoryManager().
|
overrideprotectedvirtual |
Implements llvm::orc::DebugObject.
Definition at line 334 of file DebugObjectManagerPlugin.cpp.
References llvm::dbgs(), llvm::sys::Process::getPageSizeEstimate(), LLVM_DEBUG, and PageSize.
|
inline |
Definition at line 202 of file DebugObjectManagerPlugin.cpp.
References llvm::MemoryBufferRef::getBuffer().
|
protected |
Definition at line 378 of file DebugObjectManagerPlugin.cpp.
|
protected |
Definition at line 367 of file DebugObjectManagerPlugin.cpp.
|
overridevirtual |
Reimplemented from llvm::orc::DebugObject.
Definition at line 360 of file DebugObjectManagerPlugin.cpp.
References llvm::object::getSection().