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

Debugger support for ELF platforms with the GDB JIT Interface. More...

#include "llvm/ExecutionEngine/Orc/Debugging/ELFDebugObjectPlugin.h"

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

Public Member Functions

 ELFDebugObjectPlugin (ExecutionSession &ES, bool RequireDebugSections, bool AutoRegisterCode, Error &Err)
 Create the plugin for the given session and set additional options.
 ~ELFDebugObjectPlugin () override
void notifyMaterializing (MaterializationResponsibility &MR, jitlink::LinkGraph &G, jitlink::JITLinkContext &Ctx, MemoryBufferRef InputObj) override
Error notifyFailed (MaterializationResponsibility &MR) override
Error notifyRemovingResources (JITDylib &JD, ResourceKey K) override
void notifyTransferringResources (JITDylib &JD, ResourceKey DstKey, ResourceKey SrcKey) override
void modifyPassConfig (MaterializationResponsibility &MR, jitlink::LinkGraph &LG, jitlink::PassConfiguration &PassConfig) override

Detailed Description

Debugger support for ELF platforms with the GDB JIT Interface.

The plugin emits and manages a separate debug object allocation in addition to the LinkGraph's own allocation and it notifies the debugger when necessary.

Definition at line 39 of file ELFDebugObjectPlugin.h.

Constructor & Destructor Documentation

◆ ELFDebugObjectPlugin()

llvm::orc::ELFDebugObjectPlugin::ELFDebugObjectPlugin ( ExecutionSession & ES,
bool RequireDebugSections,
bool AutoRegisterCode,
Error & Err )

Create the plugin for the given session and set additional options.

RequireDebugSections: Emit debug objects only if the LinkGraph contains debug info. Turning this off allows minimal debugging based on raw symbol names, but it comes with significant overhead for release configurations.

AutoRegisterCode: Notify the debugger for each new debug object. This is a good default mode, but it may cause significant overhead when adding many modules in sequence. Otherwise the user must call __jit_debug_register_code() in the debug session manually.

Definition at line 186 of file ELFDebugObjectPlugin.cpp.

References _, and llvm::orc::rt::RegisterJITLoaderGDBAllocActionName.

◆ ~ELFDebugObjectPlugin()

llvm::orc::ELFDebugObjectPlugin::~ELFDebugObjectPlugin ( )
overridedefault

Member Function Documentation

◆ modifyPassConfig()

◆ notifyFailed()

Error llvm::orc::ELFDebugObjectPlugin::notifyFailed ( MaterializationResponsibility & MR)
override

Definition at line 341 of file ELFDebugObjectPlugin.cpp.

References notifyFailed(), and llvm::Error::success().

Referenced by notifyFailed(), and ~ELFDebugObjectPlugin().

◆ notifyMaterializing()

◆ notifyRemovingResources()

Error llvm::orc::ELFDebugObjectPlugin::notifyRemovingResources ( JITDylib & JD,
ResourceKey K )
override

◆ notifyTransferringResources()

void llvm::orc::ELFDebugObjectPlugin::notifyTransferringResources ( JITDylib & JD,
ResourceKey DstKey,
ResourceKey SrcKey )
override

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