Index: include/lldb/Host/linux/HostInfoLinux.h =================================================================== --- include/lldb/Host/linux/HostInfoLinux.h +++ include/lldb/Host/linux/HostInfoLinux.h @@ -40,6 +40,7 @@ static FileSpec GetProgramFileSpec(); protected: + static bool ComputeSharedLibraryDirectory(FileSpec &file_spec); static bool ComputeSystemPluginsDirectory(FileSpec &file_spec); static bool ComputeUserPluginsDirectory(FileSpec &file_spec); static void ComputeHostArchitectureSupport(ArchSpec &arch_32, ArchSpec &arch_64); Index: source/Host/linux/HostInfoLinux.cpp =================================================================== --- source/Host/linux/HostInfoLinux.cpp +++ source/Host/linux/HostInfoLinux.cpp @@ -223,6 +223,15 @@ } bool +HostInfoLinux::ComputeSharedLibraryDirectory(FileSpec &file_spec) +{ + HostInfoPosix::ComputeSharedLibraryDirectory(file_spec); + if (!file_spec.GetDirectory()) + file_spec.GetDirectory() = GetProgramFileSpec().GetDirectory(); + return (bool)file_spec.GetDirectory(); +} + +bool HostInfoLinux::ComputeSystemPluginsDirectory(FileSpec &file_spec) { FileSpec temp_file("/usr/lib/lldb", true); Index: source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp =================================================================== --- source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp +++ source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp @@ -214,13 +214,18 @@ { ArchSpec remote_arch = m_gdb_client.GetSystemArchitecture(); - // TODO: 64 bit systems should also advertize support for 32 bit arch - // unknown CPU, we just support the one arch if (idx == 0) { arch = remote_arch; return true; } + else if (idx == 1 && + remote_arch.GetTriple().isOSLinux() && + remote_arch.GetTriple().isArch64Bit()) + { + arch.SetTriple("i686-linux-gnu"); + return true; + } return false; } Index: source/Plugins/Process/Utility/RegisterContextLinux_i386.cpp =================================================================== --- source/Plugins/Process/Utility/RegisterContextLinux_i386.cpp +++ source/Plugins/Process/Utility/RegisterContextLinux_i386.cpp @@ -113,6 +113,8 @@ { case llvm::Triple::x86: return g_register_infos_i386; + case llvm::Triple::x86_64: + return g_register_infos_i386; default: assert(false && "Unhandled target architecture."); return NULL;