[lldb] Preserve TargetSP in Platform module lookup When `Platform::GetRemoteSharedModule` resolves a module specification by calling `GetModuleSpec` on the process, the target context (`TargetSP`) is lost. This happens because the underlying process plugin populates a new `ModuleSpec` object that does not inherit the target context. This causes failures in subsequent symbol resolution steps. For example, when `ModuleList` relies on the `TargetSP` to query target-specific settings like `target.exec-search-paths` and `target.symbols-search-paths`, the lookup fails because `TargetSP` evaluates to null. This prevents LLDB from finding local unstripped libraries. This commit fixes the issue by transferring the target context from the original `module_spec` over to the `resolved_module_spec` before proceeding with the lookup. Additionally, this commit avoids redundant calls to the locate module callback. Since the platform already handles the callback explicitly, passing the target context to subsequent `ModuleList::GetSharedModule` calls would normally trigger the callback again redundantly. This is suppressed by passing `invoke_locate_callback=false` in `Platform::GetSharedModule` and `ModuleCache::Get`. This also avoids triggering the callback with incomplete module specifications (e.g. cleared UUIDs) during cache lookups.
43 KiB
43 KiB