Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[LLDB] Fix remote executables load and caching #98623

Merged
merged 1 commit into from
Jul 12, 2024

Conversation

dzhidzhoev
Copy link
Member

Seemingly, #96256 removed the only call to
Platform::GetCachedExecutable, which broke the resolution of executable modules in the remote debugging mode
(#97410).

This commit fixes that.

@llvmbot
Copy link
Collaborator

llvmbot commented Jul 12, 2024

@llvm/pr-subscribers-lldb

Author: Vladislav Dzhidzhoev (dzhidzhoev)

Changes

Seemingly, #96256 removed the only call to
Platform::GetCachedExecutable, which broke the resolution of executable modules in the remote debugging mode
(#97410).

This commit fixes that.


Full diff: https://github.com/llvm/llvm-project/pull/98623.diff

2 Files Affected:

  • (modified) lldb/source/Target/Platform.cpp (+1-1)
  • (modified) lldb/source/Target/RemoteAwarePlatform.cpp (+3)
diff --git a/lldb/source/Target/Platform.cpp b/lldb/source/Target/Platform.cpp
index bb90c377d86b2..1900898db6494 100644
--- a/lldb/source/Target/Platform.cpp
+++ b/lldb/source/Target/Platform.cpp
@@ -1446,7 +1446,7 @@ Platform::GetCachedExecutable(ModuleSpec &module_spec,
   Status error = GetRemoteSharedModule(
       module_spec, nullptr, module_sp,
       [&](const ModuleSpec &spec) {
-        return ResolveExecutable(spec, module_sp, module_search_paths_ptr);
+        return Platform::ResolveExecutable(spec, module_sp, module_search_paths_ptr);
       },
       nullptr);
   if (error.Success()) {
diff --git a/lldb/source/Target/RemoteAwarePlatform.cpp b/lldb/source/Target/RemoteAwarePlatform.cpp
index 5fc2d63876b92..f3aafb87149c8 100644
--- a/lldb/source/Target/RemoteAwarePlatform.cpp
+++ b/lldb/source/Target/RemoteAwarePlatform.cpp
@@ -46,6 +46,9 @@ Status RemoteAwarePlatform::ResolveExecutable(
 
     if (!FileSystem::Instance().Exists(resolved_file_spec))
       FileSystem::Instance().ResolveExecutableLocation(resolved_file_spec);
+  } else if (m_remote_platform_sp) {
+    return GetCachedExecutable(resolved_module_spec, exe_module_sp,
+        module_search_paths_ptr);
   }
 
   return Platform::ResolveExecutable(resolved_module_spec, exe_module_sp,

Copy link

github-actions bot commented Jul 12, 2024

✅ With the latest revision this PR passed the C/C++ code formatter.

Seemingly, llvm#96256 removed the only call to
Platform::GetCachedExecutable, which broke the resolution of executable
modules in the remote debugging mode
(llvm#97410).

This commit fixes that.
@JDevlieghere
Copy link
Member

That was an oversight. Thanks for restoring this. LGTM.

@JDevlieghere
Copy link
Member

CC @clayborg as this probably explains the Android debugging regression.

@splhack
Copy link
Contributor

splhack commented Jul 12, 2024

Verified this fixed the ResolveExecutableModule issue with Android target reported in #98581

@dzhidzhoev dzhidzhoev merged commit 73dad7a into llvm:main Jul 12, 2024
4 of 5 checks passed
aaryanshukla pushed a commit to aaryanshukla/llvm-project that referenced this pull request Jul 14, 2024
Seemingly, llvm#96256 removed the only call to
Platform::GetCachedExecutable, which broke the resolution of executable
modules in the remote debugging mode
(llvm#97410).

This commit fixes that.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[lldb] Some LLDB API tests are broken in the cross build after #96256
4 participants