|
LLVM 24.0.0git
|
Debugger support for ELF platforms with the GDB JIT Interface. More...
#include "llvm/ExecutionEngine/Orc/Debugging/ELFDebugObjectPlugin.h"
Public Member Functions | |
| ELFDebugObjectPlugin (ExecutionSession &ES, bool RequireDebugSections, 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 |
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.
| llvm::orc::ELFDebugObjectPlugin::ELFDebugObjectPlugin | ( | ExecutionSession & | ES, |
| bool | RequireDebugSections, | ||
| 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.
Definition at line 192 of file ELFDebugObjectPlugin.cpp.
References _, and llvm::orc::lookupAndApply().
|
overridedefault |
|
override |
Definition at line 269 of file ELFDebugObjectPlugin.cpp.
References llvm::Alloc, assert(), llvm::orc::DebugObject::awaitTargetMem(), llvm::cantFail(), llvm::orc::DebugObject::collectTargetAlloc(), llvm::dbgs(), llvm::orc::DebugObject::failMaterialization(), G, llvm::jitlink::SectionRange::getStart(), llvm::orc::DebugObject::hasPendingTargetMem(), isDwarfSection(), LLVM_DEBUG, modifyPassConfig(), llvm::jitlink::PassConfiguration::PostAllocationPasses, llvm::jitlink::PassConfiguration::PostFixupPasses, llvm::orc::Read, llvm::orc::DebugObject::reportTargetMem(), llvm::Error::success(), llvm::Expected< T >::takeError(), llvm::orc::DebugObject::trackFinalizedAlloc(), llvm::orc::DebugObject::visitSections(), and llvm::orc::MaterializationResponsibility::withResourceKeyDo().
Referenced by modifyPassConfig(), and ~ELFDebugObjectPlugin().
|
override |
Definition at line 385 of file ELFDebugObjectPlugin.cpp.
References notifyFailed(), and llvm::Error::success().
Referenced by notifyFailed(), and ~ELFDebugObjectPlugin().
|
override |
Definition at line 216 of file ELFDebugObjectPlugin.cpp.
References llvm::Alloc, llvm::jitlink::SimpleSegmentAlloc::Create(), llvm::createStringError(), llvm::Triple::ELF, llvm::ELF::ELFCLASS32, llvm::ELF::ELFCLASS64, llvm::ELF::ELFDATA2LSB, llvm::ELF::ELFDATA2MSB, G, llvm::MemoryBufferRef::getBuffer(), llvm::MemoryBufferRef::getBufferSize(), llvm::object::getElfArchType(), llvm::sys::Process::getPageSizeEstimate(), llvm::object::invalid_file_type, and Size.
Referenced by ~ELFDebugObjectPlugin().
|
override |
Definition at line 409 of file ELFDebugObjectPlugin.cpp.
References llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key, notifyRemovingResources(), and llvm::Error::success().
Referenced by notifyRemovingResources(), and ~ELFDebugObjectPlugin().
|
override |
Definition at line 393 of file ELFDebugObjectPlugin.cpp.
References notifyTransferringResources().
Referenced by notifyTransferringResources(), and ~ELFDebugObjectPlugin().