================ @@ -757,11 +758,32 @@ bool DynamicLoaderDarwinKernel::KextImageInfo::LoadImageUsingMemoryModule( const ModuleList &target_images = target.GetImages(); m_module_sp = target_images.FindModule(m_uuid); + StreamString prog_str; + // 'mach_kernel' is a fake name we make up to find kernels + // that were located by the local filesystem scan. + if (GetName() != "mach_kernel") + prog_str << GetName() << " "; + if (GetUUID().IsValid()) + prog_str << GetUUID().GetAsString() << " "; + if (GetLoadAddress() != LLDB_INVALID_ADDRESS) { + prog_str << "at 0x"; + prog_str.PutHex64(GetLoadAddress()); + } + std::unique_ptr<Progress> progress_wp; + if (IsKernel()) + progress_wp = std::make_unique<Progress>("Loading kernel", + prog_str.GetString().str()); + else + progress_wp = std::make_unique<Progress>("Loading kext", + prog_str.GetString().str()); + // Search for the kext on the local filesystem via the UUID if (!m_module_sp && m_uuid.IsValid()) { ModuleSpec module_spec; module_spec.GetUUID() = m_uuid; - module_spec.GetArchitecture() = target.GetArchitecture(); + if (!m_uuid.IsValid()) + module_spec.GetArchitecture() = target.GetArchitecture(); ---------------- jasonmolenda wrote:
just to be clear, it's almost always the "environment" or "os" part of the triple, which is nearly an entire fiction with firmware style debugging, that is the problem. One binary will say "hey I'm iOS" and another binary that needs to be loaded also is like "I'm something else" and lldb will reject the module load even though the UUIDs match. https://github.com/llvm/llvm-project/pull/98845 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits