Go to the documentation of this file.
19 Expected<std::unique_ptr<EPCDebugObjectRegistrar>>
22 auto ProcessHandle = EPC.
loadDylib(
nullptr);
24 return ProcessHandle.takeError();
27 EPC.getTargetTriple().isOSBinFormatMachO()
28 ? EPC.intern(
"_llvm_orc_registerJITLoaderGDBWrapper")
29 : EPC.intern(
"llvm_orc_registerJITLoaderGDBWrapper");
32 RegistrationSymbols.
add(RegisterFn);
34 auto Result = EPC.lookupSymbols({{*ProcessHandle, RegistrationSymbols}});
36 return Result.takeError();
38 assert(Result->size() == 1 &&
"Unexpected number of dylibs in result");
40 "Unexpected number of addresses in result");
42 return std::make_unique<EPCDebugObjectRegistrar>(
Represents an address in the executor process.
This is an optimization pass for GlobalISel generic memory operations.
A set of symbols to look up, each associated with a SymbolLookupFlags value.
Pointer to a pooled string representing a symbol name.
SymbolLookupSet & add(SymbolStringPtr Name, SymbolLookupFlags Flags=SymbolLookupFlags::RequiredSymbol)
Add an element to the set.
Represents an address range in the exceutor process.
Error registerDebugObject(ExecutorAddrRange TargetMem) override
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
Error callSPSWrapper(ExecutorAddr WrapperFnAddr, WrapperCallArgTs &&...WrapperCallArgs)
Run a wrapper function using SPS to serialize the arguments and deserialize the results.
ExecutorProcessControl & getExecutorProcessControl()
Get the ExecutorProcessControl object associated with this ExecutionSession.
auto size(R &&Range, std::enable_if_t< std::is_base_of< std::random_access_iterator_tag, typename std::iterator_traits< decltype(Range.begin())>::iterator_category >::value, void > *=nullptr)
Get the size of a range.
Lightweight error class with error context and mandatory checking.
An ExecutionSession represents a running JIT program.
virtual Expected< tpctypes::DylibHandle > loadDylib(const char *DylibPath)=0
Load the dynamic library at the given path and return a handle to it.
Expected< std::unique_ptr< EPCDebugObjectRegistrar > > createJITLoaderGDBRegistrar(ExecutionSession &ES)
Create a ExecutorProcessControl-based DebugObjectRegistrar that emits debug objects to the GDB JIT in...