LLVM 22.0.0git
llvm::orc::DebugObject Class Referenceabstract

The plugin creates a debug object from when JITLink starts processing the corresponding LinkGraph. More...

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

Public Types

using FinalizeContinuation = std::function<void(Expected<ExecutorAddrRange>)>

Public Member Functions

 DebugObject (JITLinkMemoryManager &MemMgr, const JITLinkDylib *JD, ExecutionSession &ES)
bool hasFlags (DebugObjectFlags F) const
void setFlags (DebugObjectFlags F)
void clearFlags (DebugObjectFlags F)
void finalizeAsync (FinalizeContinuation OnAsync)
void failMaterialization (Error Err)
void reportTargetMem (ExecutorAddrRange TargetMem)
Expected< ExecutorAddrRangeawaitTargetMem ()
virtual ~DebugObject ()
virtual void reportSectionTargetMemoryRange (StringRef Name, SectionRange TargetMem)

Protected Types

using InFlightAlloc = JITLinkMemoryManager::InFlightAlloc
using FinalizedAlloc = JITLinkMemoryManager::FinalizedAlloc

Protected Member Functions

virtual Expected< SimpleSegmentAllocfinalizeWorkingMemory ()=0

Protected Attributes

JITLinkMemoryManagerMemMgr
const JITLinkDylibJD = nullptr
ExecutionSessionES
std::promise< MSVCPExpected< ExecutorAddrRange > > FinalizePromise
std::future< MSVCPExpected< ExecutorAddrRange > > FinalizeFuture

Detailed Description

The plugin creates a debug object from when JITLink starts processing the corresponding LinkGraph.

It provides access to the pass configuration of the LinkGraph and calls the finalization function, once the resulting link artifact was emitted.

Definition at line 115 of file ELFDebugObjectPlugin.cpp.

Member Typedef Documentation

◆ FinalizeContinuation

Definition at line 131 of file ELFDebugObjectPlugin.cpp.

◆ FinalizedAlloc

◆ InFlightAlloc

Constructor & Destructor Documentation

◆ DebugObject()

llvm::orc::DebugObject::DebugObject ( JITLinkMemoryManager & MemMgr,
const JITLinkDylib * JD,
ExecutionSession & ES )
inline

Definition at line 117 of file ELFDebugObjectPlugin.cpp.

References ES, FinalizeFuture, FinalizePromise, JD, and MemMgr.

◆ ~DebugObject()

virtual llvm::orc::DebugObject::~DebugObject ( )
inlinevirtual

Definition at line 144 of file ELFDebugObjectPlugin.cpp.

References ES, and MemMgr.

Member Function Documentation

◆ awaitTargetMem()

Expected< ExecutorAddrRange > llvm::orc::DebugObject::awaitTargetMem ( )
inline

◆ clearFlags()

void llvm::orc::DebugObject::clearFlags ( DebugObjectFlags F)
inline

Definition at line 127 of file ELFDebugObjectPlugin.cpp.

References F.

◆ failMaterialization()

void llvm::orc::DebugObject::failMaterialization ( Error Err)
inline

◆ finalizeAsync()

void llvm::orc::DebugObject::finalizeAsync ( FinalizeContinuation OnAsync)

◆ finalizeWorkingMemory()

virtual Expected< SimpleSegmentAlloc > llvm::orc::DebugObject::finalizeWorkingMemory ( )
protectedpure virtual

Implemented in llvm::orc::ELFDebugObject.

Referenced by finalizeAsync().

◆ hasFlags()

bool llvm::orc::DebugObject::hasFlags ( DebugObjectFlags F) const
inline

Definition at line 123 of file ELFDebugObjectPlugin.cpp.

References F.

Referenced by llvm::orc::ELFDebugObjectPlugin::modifyPassConfig().

◆ reportSectionTargetMemoryRange()

virtual void llvm::orc::DebugObject::reportSectionTargetMemoryRange ( StringRef Name,
SectionRange TargetMem )
inlinevirtual

◆ reportTargetMem()

void llvm::orc::DebugObject::reportTargetMem ( ExecutorAddrRange TargetMem)
inline

◆ setFlags()

void llvm::orc::DebugObject::setFlags ( DebugObjectFlags F)
inline

Definition at line 124 of file ELFDebugObjectPlugin.cpp.

References F.

Member Data Documentation

◆ ES

◆ FinalizeFuture

std::future<MSVCPExpected<ExecutorAddrRange> > llvm::orc::DebugObject::FinalizeFuture
protected

Definition at line 167 of file ELFDebugObjectPlugin.cpp.

Referenced by awaitTargetMem(), and DebugObject().

◆ FinalizePromise

std::promise<MSVCPExpected<ExecutorAddrRange> > llvm::orc::DebugObject::FinalizePromise
protected

Definition at line 166 of file ELFDebugObjectPlugin.cpp.

Referenced by DebugObject(), failMaterialization(), and reportTargetMem().

◆ JD

const JITLinkDylib* llvm::orc::DebugObject::JD = nullptr
protected

◆ MemMgr

JITLinkMemoryManager& llvm::orc::DebugObject::MemMgr
protected

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