class DebugObjectManagerPlugin
Declaration
class DebugObjectManagerPlugin : public Plugin { /* full declaration omitted */ };
Description
Creates and manages DebugObjects for JITLink artifacts. DebugObjects are created when linking for a MaterializationResponsibility starts. They are pending as long as materialization is in progress. There can only be one pending DebugObject per MaterializationResponsibility. If materialization fails, pending DebugObjects are discarded. Once executable code for the MaterializationResponsibility is emitted, the corresponding DebugObject is finalized to target memory and the provided DebugObjectRegistrar is notified. Ownership of DebugObjects remains with the plugin.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/DebugObjectManagerPlugin.h:48
Inherits from: ObjectLinkingLayer::Plugin
Member Variables
- private llvm::orc::ExecutionSession& ES
- private std::map<MaterializationResponsibility*, OwnedDebugObject> PendingObjs
- private std::map<ResourceKey, std::vector<OwnedDebugObject>> RegisteredObjs
- private std::mutex PendingObjsLock
- private std::mutex RegisteredObjsLock
- private std::unique_ptr<DebugObjectRegistrar> Target
Method Overview
- public DebugObjectManagerPlugin(llvm::orc::ExecutionSession & ES, std::unique_ptr<DebugObjectRegistrar> Target)
- public void modifyPassConfig(llvm::orc::MaterializationResponsibility & MR, jitlink::LinkGraph & LG, jitlink::PassConfiguration & PassConfig)
- public llvm::Error notifyEmitted(llvm::orc::MaterializationResponsibility & MR)
- public llvm::Error notifyFailed(llvm::orc::MaterializationResponsibility & MR)
- public void notifyMaterializing(llvm::orc::MaterializationResponsibility & MR, jitlink::LinkGraph & G, jitlink::JITLinkContext & Ctx, llvm::MemoryBufferRef InputObject)
- public llvm::Error notifyRemovingResources(llvm::orc::ResourceKey K)
- public void notifyTransferringResources(llvm::orc::ResourceKey DstKey, llvm::orc::ResourceKey SrcKey)
- public ~DebugObjectManagerPlugin()
Inherited from ObjectLinkingLayer::Plugin:
- public getSyntheticSymbolDependencies
- public modifyPassConfig
- public notifyEmitted
- public notifyFailed
- public notifyLoaded
- public notifyMaterializing
- public notifyRemovingResources
- public notifyTransferringResources
Methods
¶DebugObjectManagerPlugin(
llvm::orc::ExecutionSession& ES,
std::unique_ptr<DebugObjectRegistrar> Target)
DebugObjectManagerPlugin(
llvm::orc::ExecutionSession& ES,
std::unique_ptr<DebugObjectRegistrar> Target)
Declared at: llvm/include/llvm/ExecutionEngine/Orc/DebugObjectManagerPlugin.h:50
Parameters
- llvm::orc::ExecutionSession& ES
- std::unique_ptr<DebugObjectRegistrar> Target
¶void modifyPassConfig(
llvm::orc::MaterializationResponsibility& MR,
jitlink::LinkGraph& LG,
jitlink::PassConfiguration& PassConfig)
void modifyPassConfig(
llvm::orc::MaterializationResponsibility& MR,
jitlink::LinkGraph& LG,
jitlink::PassConfiguration& PassConfig)
Declared at: llvm/include/llvm/ExecutionEngine/Orc/DebugObjectManagerPlugin.h:65
Parameters
- llvm::orc::MaterializationResponsibility& MR
- jitlink::LinkGraph& LG
- jitlink::PassConfiguration& PassConfig
¶llvm::Error notifyEmitted(
llvm::orc::MaterializationResponsibility& MR)
llvm::Error notifyEmitted(
llvm::orc::MaterializationResponsibility& MR)
Declared at: llvm/include/llvm/ExecutionEngine/Orc/DebugObjectManagerPlugin.h:58
Parameters
¶llvm::Error notifyFailed(
llvm::orc::MaterializationResponsibility& MR)
llvm::Error notifyFailed(
llvm::orc::MaterializationResponsibility& MR)
Declared at: llvm/include/llvm/ExecutionEngine/Orc/DebugObjectManagerPlugin.h:59
Parameters
¶void notifyMaterializing(
llvm::orc::MaterializationResponsibility& MR,
jitlink::LinkGraph& G,
jitlink::JITLinkContext& Ctx,
llvm::MemoryBufferRef InputObject)
void notifyMaterializing(
llvm::orc::MaterializationResponsibility& MR,
jitlink::LinkGraph& G,
jitlink::JITLinkContext& Ctx,
llvm::MemoryBufferRef InputObject)
Declared at: llvm/include/llvm/ExecutionEngine/Orc/DebugObjectManagerPlugin.h:54
Parameters
- llvm::orc::MaterializationResponsibility& MR
- jitlink::LinkGraph& G
- jitlink::JITLinkContext& Ctx
- llvm::MemoryBufferRef InputObject
¶llvm::Error notifyRemovingResources(
llvm::orc::ResourceKey K)
llvm::Error notifyRemovingResources(
llvm::orc::ResourceKey K)
Declared at: llvm/include/llvm/ExecutionEngine/Orc/DebugObjectManagerPlugin.h:60
Parameters
- llvm::orc::ResourceKey K
¶void notifyTransferringResources(
llvm::orc::ResourceKey DstKey,
llvm::orc::ResourceKey SrcKey)
void notifyTransferringResources(
llvm::orc::ResourceKey DstKey,
llvm::orc::ResourceKey SrcKey)
Declared at: llvm/include/llvm/ExecutionEngine/Orc/DebugObjectManagerPlugin.h:62
Parameters
- llvm::orc::ResourceKey DstKey
- llvm::orc::ResourceKey SrcKey
¶~DebugObjectManagerPlugin()
~DebugObjectManagerPlugin()
Declared at: llvm/include/llvm/ExecutionEngine/Orc/DebugObjectManagerPlugin.h:52