20#ifndef LLDB_SOURCE_PLUGINS_DYNAMICLOADER_MACOSX_DYLD_DYNAMICLOADERMACOSXDYLD_H
21#define LLDB_SOURCE_PLUGINS_DYNAMICLOADER_MACOSX_DYLD_DYNAMICLOADERMACOSXDYLD_H
97 ImageInfo &dylib_info,
149 uint32_t image_infos_count);
152 uint32_t image_infos_count);
155 uint32_t infos_count,
156 bool update_executable);
159 ImageInfo::collection &image_infos);
bool ReadDYLDInfoFromMemoryAndSetNotificationCallback(lldb::addr_t addr)
void PutToLog(lldb_private::Log *log) const
bool RemoveModulesUsingImageInfosAddress(lldb::addr_t image_infos_addr, uint32_t image_infos_count)
static void DebuggerInitialize(lldb_private::Debugger &debugger)
~DynamicLoaderMacOSXDYLD() override
static lldb_private::DynamicLoader * CreateInstance(lldb_private::Process *process, bool force)
void UpdateImageInfosHeaderAndLoadCommands(ImageInfo::collection &image_infos, uint32_t infos_count, bool update_executable)
static llvm::StringRef GetPluginNameStatic()
void DoInitialImageFetch() override
static llvm::StringRef GetPluginDescriptionStatic()
static lldb::ByteOrder GetByteOrderFromMagic(uint32_t magic)
void ClearNotificationBreakpoint() override
bool SetNotificationBreakpoint() override
llvm::StringRef GetPluginName() override
bool InitializeFromAllImageInfos()
bool ReadImageInfos(lldb::addr_t image_infos_addr, uint32_t image_infos_count, ImageInfo::collection &image_infos)
bool DidSetNotificationBreakpoint() override
uint32_t ParseLoadCommands(const lldb_private::DataExtractor &data, ImageInfo &dylib_info, lldb_private::FileSpec *lc_id_dylinker)
lldb_private::Status CanLoadImage() override
Ask if it is ok to try and load or unload an shared library (image).
uint32_t m_dyld_all_image_infos_stop_id
DynamicLoaderMacOSXDYLD(const DynamicLoaderMacOSXDYLD &)=delete
bool ReadMachHeader(lldb::addr_t addr, llvm::MachO::mach_header *header, lldb_private::DataExtractor *load_command_data)
bool ProcessDidExec() override
Called after attaching a process.
bool IsFullyInitialized() override
Return whether the dynamic loader is fully initialized and it's safe to call its APIs.
bool GetSharedCacheInformation(lldb::addr_t &base_address, lldb_private::UUID &uuid, lldb_private::LazyBool &using_shared_cache, lldb_private::LazyBool &private_shared_cache) override
Get information about the shared cache for a process, if possible.
bool AddModulesUsingImageInfosAddress(lldb::addr_t image_infos_addr, uint32_t image_infos_count)
static bool NotifyBreakpointHit(void *baton, lldb_private::StoppointCallbackContext *context, lldb::user_id_t break_id, lldb::user_id_t break_loc_id)
bool m_process_image_addr_is_all_images_infos
std::recursive_mutex m_mutex
DYLDAllImageInfos m_dyld_all_image_infos
bool ReadAllImageInfosStructure()
lldb::user_id_t m_break_id
const DynamicLoaderMacOSXDYLD & operator=(const DynamicLoaderMacOSXDYLD &)=delete
lldb::addr_t m_dyld_all_image_infos_addr
bool NeedToDoInitialImageFetch() override
A class to manage flag bits.
A plug-in interface definition class for dynamic loaders.
A plug-in interface definition class for debugging a process.
General Outline: When we hit a breakpoint we need to package up whatever information is needed to eva...
#define LLDB_INVALID_ADDRESS
ByteOrder
Byte ordering definitions.
uint32_t dylib_info_count
bool processDetachedFromSharedRegion
DYLDAllImageInfos()=default
bool libSystemInitialized
lldb::addr_t dylib_info_addr
lldb::addr_t notification
lldb::addr_t dyldImageLoadAddress