Go to the documentation of this file.
9 #ifndef LLDB_TARGET_DYNAMICLOADER_H
10 #define LLDB_TARGET_DYNAMICLOADER_H
29 class SymbolContextList;
67 llvm::StringRef plugin_name);
128 bool stop_others) = 0;
199 const lldb::ThreadSP thread,
211 bool base_addr_is_offset);
285 bool base_addr_is_offset);
290 bool base_addr_is_offset);
322 #endif // LLDB_TARGET_DYNAMICLOADER_H
virtual bool GetSharedCacheInformation(lldb::addr_t &base_address, UUID &uuid, LazyBool &using_shared_cache, LazyBool &private_shared_cache)
Get information about the shared cache for a process, if possible.
void SetStopWhenImagesChange(bool stop)
Set whether the process should stop when images change.
DynamicLoader(Process *process)
Construct with a process.
static DynamicLoader * FindPlugin(Process *process, llvm::StringRef plugin_name)
Find a dynamic loader plugin for a given process.
virtual Status CanLoadImage()=0
Ask if it is ok to try and load or unload an shared library (image).
void UnloadSectionsCommon(const lldb::ModuleSP module)
void LoadOperatingSystemPlugin(bool flush)
virtual void FindEquivalentSymbols(Symbol *original_symbol, ModuleList &module_list, SymbolContextList &equivalent_symbols)
Some dynamic loaders provide features where there are a group of symbols "equivalent to" a given symb...
virtual void DidLaunch()=0
Called after launching a process.
virtual bool ProcessDidExec()
Helper function that can be used to detect when a process has called exec and is now a new and differ...
int64_t ReadUnsignedIntWithSizeInBytes(lldb::addr_t addr, int size_in_bytes)
lldb::ModuleSP FindModuleViaTarget(const FileSpec &file)
lldb::addr_t ReadPointer(lldb::addr_t addr)
virtual void UpdateLoadedSections(lldb::ModuleSP module, lldb::addr_t link_map_addr, lldb::addr_t base_addr, bool base_addr_is_offset)
Updates the load address of every allocatable section in module.
Process * m_process
The process that this dynamic loader plug-in is tracking.
void UpdateLoadedSectionsCommon(lldb::ModuleSP module, lldb::addr_t base_addr, bool base_addr_is_offset)
virtual lldb::addr_t GetThreadLocalData(const lldb::ModuleSP module, const lldb::ThreadSP thread, lldb::addr_t tls_file_addr)
Retrieves the per-module TLS block for a given thread.
virtual lldb::ThreadPlanSP GetStepThroughTrampolinePlan(Thread &thread, bool stop_others)=0
Provides a plan to step through the dynamic loader trampoline for the current state of thread.
virtual lldb::ModuleSP LoadModuleAtAddress(const lldb_private::FileSpec &file, lldb::addr_t link_map_addr, lldb::addr_t base_addr, bool base_addr_is_offset)
Locates or creates a module given by file and updates/loads the resulting module at the virtual base ...
bool GetStopWhenImagesChange() const
Get whether the process should stop when images change.
lldb::ModuleSP GetTargetExecutable()
Checks to see if the target module has changed, updates the target accordingly and returns the target...
#define LLDB_INVALID_ADDRESS
virtual bool IsFullyInitialized()
Return whether the dynamic loader is fully initialized and it's safe to call its APIs.
virtual void UnloadSections(const lldb::ModuleSP module)
Removes the loaded sections from the target in module.
A class that represents a running process on the host machine.
virtual bool AlwaysRelyOnEHUnwindInfo(SymbolContext &sym_ctx)
Ask if the eh_frame information for the given SymbolContext should be relied on even when it's the fi...
virtual void DidAttach()=0
Called after attaching a process.
const lldb_private::SectionList * GetSectionListFromModule(const lldb::ModuleSP module) const