diff --git a/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp b/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp index b3b199e1bf71..ea2cb46af009 100644 --- a/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp +++ b/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp @@ -812,11 +812,10 @@ bool DynamicLoaderDarwinKernel::KextImageInfo::LoadImageUsingMemoryModule( } } - if (m_module_sp && m_uuid.IsValid() && m_module_sp->GetUUID() == m_uuid) { - ObjectFileMachO *ondisk_objfile_macho = - llvm::dyn_cast_or_null( - m_module_sp ? m_module_sp->GetObjectFile() : nullptr); - if (ondisk_objfile_macho) { + if (m_module_sp && m_uuid.IsValid() && m_module_sp->GetUUID() == m_uuid && + m_module_sp->GetObjectFile()) { + if (ObjectFileMachO *ondisk_objfile_macho = + llvm::dyn_cast(m_module_sp->GetObjectFile())) { if (!IsKernel() && !ondisk_objfile_macho->IsKext()) { // We have a non-kext, non-kernel binary. If we already have this // loaded in the Target with load addresses, don't re-load it again. diff --git a/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp b/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp index d41279ce864c..c5f04557ae61 100644 --- a/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp +++ b/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp @@ -7032,6 +7032,8 @@ bool ObjectFileMachO::LoadCoreFileImages(lldb_private::Process &process) { &process, image.filename, image.uuid, image.load_address, false /* value_is_offset */, image.currently_executing, false /* notify */); + if (module_sp) + continue; } // If we have a slide, we need to find the original binary @@ -7042,6 +7044,8 @@ bool ObjectFileMachO::LoadCoreFileImages(lldb_private::Process &process) { &process, image.filename, image.uuid, image.slide, true /* value_is_offset */, image.currently_executing, false /* notify */); + if (module_sp) + continue; } // Try to find the binary by UUID or filename on the local