diff --git a/lldb/include/lldb/Host/android/HostInfoAndroid.h b/lldb/include/lldb/Host/android/HostInfoAndroid.h index ed9d3ee2713f6..4132116f44903 100644 --- a/lldb/include/lldb/Host/android/HostInfoAndroid.h +++ b/lldb/include/lldb/Host/android/HostInfoAndroid.h @@ -25,7 +25,6 @@ class HostInfoAndroid : public HostInfoLinux protected: static void ComputeHostArchitectureSupport(ArchSpec &arch_32, ArchSpec &arch_64); - static bool ComputeSupportExeDirectory(FileSpec &file_spec); }; } // end of namespace lldb_private diff --git a/lldb/include/lldb/Host/linux/HostInfoLinux.h b/lldb/include/lldb/Host/linux/HostInfoLinux.h index 4596b33be9667..e4b22075325d4 100644 --- a/lldb/include/lldb/Host/linux/HostInfoLinux.h +++ b/lldb/include/lldb/Host/linux/HostInfoLinux.h @@ -40,7 +40,7 @@ class HostInfoLinux : public HostInfoPosix static FileSpec GetProgramFileSpec(); protected: - static bool ComputeSharedLibraryDirectory(FileSpec &file_spec); + static bool ComputeSupportExeDirectory(FileSpec &file_spec); static bool ComputeSystemPluginsDirectory(FileSpec &file_spec); static bool ComputeUserPluginsDirectory(FileSpec &file_spec); static void ComputeHostArchitectureSupport(ArchSpec &arch_32, ArchSpec &arch_64); diff --git a/lldb/source/Host/android/HostInfoAndroid.cpp b/lldb/source/Host/android/HostInfoAndroid.cpp index b819f92e95fcd..f44b6c6579263 100644 --- a/lldb/source/Host/android/HostInfoAndroid.cpp +++ b/lldb/source/Host/android/HostInfoAndroid.cpp @@ -30,13 +30,6 @@ HostInfoAndroid::ComputeHostArchitectureSupport(ArchSpec &arch_32, ArchSpec &arc } } -bool -HostInfoAndroid::ComputeSupportExeDirectory(FileSpec &file_spec) -{ - file_spec.GetDirectory() = HostInfoLinux::GetProgramFileSpec().GetDirectory(); - return (bool)file_spec.GetDirectory(); -} - FileSpec HostInfoAndroid::GetDefaultShell() { diff --git a/lldb/source/Host/common/Host.cpp b/lldb/source/Host/common/Host.cpp index 4584f702f047a..9920291f44cfc 100644 --- a/lldb/source/Host/common/Host.cpp +++ b/lldb/source/Host/common/Host.cpp @@ -487,8 +487,6 @@ Host::GetModuleFileSpecForHostAddress (const void *host_addr) if (info.dli_fname) module_filespec.SetFile(info.dli_fname, true); } -#else - assert(false && "dladdr() not supported on Android"); #endif return module_filespec; } diff --git a/lldb/source/Host/linux/HostInfoLinux.cpp b/lldb/source/Host/linux/HostInfoLinux.cpp index 3c192dce8f06f..3666b5acf7448 100644 --- a/lldb/source/Host/linux/HostInfoLinux.cpp +++ b/lldb/source/Host/linux/HostInfoLinux.cpp @@ -222,12 +222,14 @@ HostInfoLinux::GetProgramFileSpec() } bool -HostInfoLinux::ComputeSharedLibraryDirectory(FileSpec &file_spec) +HostInfoLinux::ComputeSupportExeDirectory(FileSpec &file_spec) { - if (HostInfoPosix::ComputeSharedLibraryDirectory(file_spec)) + if (HostInfoPosix::ComputeSupportExeDirectory(file_spec) && + !file_spec.IsRelativeToCurrentWorkingDirectory() && + file_spec.Exists()) return true; file_spec.GetDirectory() = GetProgramFileSpec().GetDirectory(); - return (bool)file_spec.GetDirectory(); + return !file_spec.GetDirectory().IsEmpty(); } bool