mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-25 08:36:06 +00:00
[lldb-server] Use Platform plugin corresponding to the host
In ee232506b870ce5282cc4da5ca493d41d361feb3 I moved UnixSignal initialization from lldbTarget to the various platform plugins. This inadvertently broke lldb-server because lldb-server doesn't use Platform plugins. lldb-server still needs to be able to create a UnixSignals object for the host platform so we can add the relevant platform plugin to lldb-server to make sure we always have a HostPlatform. Differential Revision: https://reviews.llvm.org/D146668
This commit is contained in:
parent
d10110a8a6
commit
0c5cee7799
@ -63,7 +63,9 @@ class CrashingInferiorTestCase(TestBase):
|
||||
# The exact stop reason depends on the platform
|
||||
if self.platformIsDarwin():
|
||||
stop_reason = 'stop reason = EXC_BAD_ACCESS'
|
||||
elif self.getPlatform() == "linux" or self.getPlatform() == "freebsd":
|
||||
elif self.getPlatform() == "linux":
|
||||
stop_reason = 'stop reason = signal SIGSEGV: address not mapped to object'
|
||||
elif self.getPlatform() == "freebsd":
|
||||
stop_reason = 'stop reason = signal SIGSEGV'
|
||||
else:
|
||||
stop_reason = 'stop reason = invalid address'
|
||||
|
@ -7,20 +7,29 @@ set(LLDB_PLUGINS)
|
||||
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "Linux|Android")
|
||||
list(APPEND LLDB_PLUGINS lldbPluginProcessLinux)
|
||||
if (CMAKE_SYSTEM_NAME MATCHES "Linux")
|
||||
list(APPEND LLDB_PLUGINS lldbPluginPlatformLinux)
|
||||
else()
|
||||
list(APPEND LLDB_PLUGINS lldbPluginPlatformAndroid)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
|
||||
list(APPEND LLDB_PLUGINS lldbPluginProcessFreeBSD)
|
||||
list(APPEND LLDB_PLUGINS lldbPluginPlatformFreeBSD)
|
||||
endif()
|
||||
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "NetBSD")
|
||||
list(APPEND LLDB_PLUGINS lldbPluginProcessNetBSD)
|
||||
list(APPEND LLDB_PLUGINS lldbPluginPlatformNetBSD)
|
||||
endif()
|
||||
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
||||
list(APPEND LLDB_PLUGINS lldbPluginObjectFileMachO)
|
||||
list(APPEND LLDB_PLUGINS lldbPluginPlatformMacOSX)
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES "Windows")
|
||||
list(APPEND LLDB_PLUGINS lldbPluginObjectFilePECOFF)
|
||||
list(APPEND LLDB_PLUGINS lldbPluginPlatformWindows)
|
||||
else()
|
||||
list(APPEND LLDB_PLUGINS lldbPluginObjectFileELF)
|
||||
endif()
|
||||
|
@ -11,12 +11,29 @@
|
||||
#if defined(__APPLE__)
|
||||
#include "Plugins/ObjectFile/Mach-O/ObjectFileMachO.h"
|
||||
using HostObjectFile = ObjectFileMachO;
|
||||
#include "Plugins/Platform/MacOSX/PlatformMacOSX.h"
|
||||
using HostPlatform = lldb_private::PlatformMacOSX;
|
||||
#elif defined(_WIN32)
|
||||
#include "Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.h"
|
||||
using HostObjectFile = ObjectFilePECOFF;
|
||||
#include "Plugins/Platform/Windows/PlatformWindows.h"
|
||||
using HostPlatform = lldb_private::PlatformWindows;
|
||||
#else
|
||||
#include "Plugins/ObjectFile/ELF/ObjectFileELF.h"
|
||||
using HostObjectFile = ObjectFileELF;
|
||||
#if defined(__ANDROID__)
|
||||
#include "Plugins/Platform/Android/PlatformAndroid.h"
|
||||
using HostPlatform = lldb_private::platform_android::PlatformAndroid;
|
||||
#elif defined(__FreeBSD__)
|
||||
#include "Plugins/Platform/FreeBSD/PlatformFreeBSD.h"
|
||||
using HostPlatform = lldb_private::platform_freebsd::PlatformFreeBSD;
|
||||
#elif defined(__linux__)
|
||||
#include "Plugins/Platform/Linux/PlatformLinux.h"
|
||||
using HostPlatform = lldb_private::platform_linux::PlatformLinux;
|
||||
#elif defined(__NetBSD__)
|
||||
#include "Plugins/Platform/NetBSD/PlatformNetBSD.h"
|
||||
using HostPlatform = lldb_private::platform_netbsd::PlatformNetBSD;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(__arm64__) || defined(__aarch64__) || defined(_M_ARM64)
|
||||
@ -58,6 +75,7 @@ llvm::Error SystemInitializerLLGS::Initialize() {
|
||||
return e;
|
||||
|
||||
HostObjectFile::Initialize();
|
||||
HostPlatform::Initialize();
|
||||
|
||||
#if defined(LLDB_TARGET_ARM) || defined(LLDB_TARGET_ARM64)
|
||||
EmulateInstructionARM::Initialize();
|
||||
@ -80,6 +98,7 @@ llvm::Error SystemInitializerLLGS::Initialize() {
|
||||
|
||||
void SystemInitializerLLGS::Terminate() {
|
||||
HostObjectFile::Terminate();
|
||||
HostPlatform::Terminate();
|
||||
|
||||
#if defined(LLDB_TARGET_ARM) || defined(LLDB_TARGET_ARM64)
|
||||
EmulateInstructionARM::Terminate();
|
||||
|
Loading…
x
Reference in New Issue
Block a user