Author: Jason Molenda Date: 2023-03-08T18:02:20-08:00 New Revision: 8db8a4e8eddf91bfaee62f83ff10a51e7125d4e4
URL: https://github.com/llvm/llvm-project/commit/8db8a4e8eddf91bfaee62f83ff10a51e7125d4e4 DIFF: https://github.com/llvm/llvm-project/commit/8db8a4e8eddf91bfaee62f83ff10a51e7125d4e4.diff LOG: Clean up conditional, don't set load binaries twice Follow Alex Langford's feedback to my patch from https://reviews.llvm.org/D145547 , and fix a side issue I noticed while testing this, where binaries loaded via LC_NOTE metadata were loaded in the Target twice unnecessarily. Added: Modified: lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp Removed: ################################################################################ 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<ObjectFileMachO>( - 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<ObjectFileMachO>(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 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits