-
Notifications
You must be signed in to change notification settings - Fork 13.5k
[lldb] Upstream xros support in lldb #78389
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
Conversation
@llvm/pr-subscribers-lldb Author: Jonas Devlieghere (JDevlieghere) ChangesUpstream support for debugging xros applications through LLDB. Patch is 27.98 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/78389.diff 21 Files Affected:
diff --git a/lldb/include/lldb/Utility/XcodeSDK.h b/lldb/include/lldb/Utility/XcodeSDK.h
index f8528995d549c9..673ea578ffce85 100644
--- a/lldb/include/lldb/Utility/XcodeSDK.h
+++ b/lldb/include/lldb/Utility/XcodeSDK.h
@@ -34,6 +34,8 @@ class XcodeSDK {
AppleTVOS,
WatchSimulator,
watchOS,
+ XRSimulator,
+ XROS,
bridgeOS,
Linux,
unknown = -1
diff --git a/lldb/source/Host/macosx/objcxx/HostInfoMacOSX.mm b/lldb/source/Host/macosx/objcxx/HostInfoMacOSX.mm
index 110a01732b2473..f96e2cf80c5fac 100644
--- a/lldb/source/Host/macosx/objcxx/HostInfoMacOSX.mm
+++ b/lldb/source/Host/macosx/objcxx/HostInfoMacOSX.mm
@@ -276,6 +276,9 @@ static void ParseOSVersion(llvm::VersionTuple &version, NSString *Key) {
#elif defined(TARGET_OS_WATCHOS) && TARGET_OS_WATCHOS == 1
arch_32.GetTriple().setOS(llvm::Triple::WatchOS);
arch_64.GetTriple().setOS(llvm::Triple::WatchOS);
+#elif defined(TARGET_OS_XR) && TARGET_OS_XR == 1
+ arch_32.GetTriple().setOS(llvm::Triple::XROS);
+ arch_64.GetTriple().setOS(llvm::Triple::XROS);
#elif defined(TARGET_OS_OSX) && TARGET_OS_OSX == 1
arch_32.GetTriple().setOS(llvm::Triple::MacOSX);
arch_64.GetTriple().setOS(llvm::Triple::MacOSX);
diff --git a/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp b/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
index 7df917d03ceeda..4128ac1cdf1bba 100644
--- a/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
+++ b/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
@@ -166,6 +166,7 @@ DynamicLoader *DynamicLoaderDarwinKernel::CreateInstance(Process *process,
case llvm::Triple::IOS:
case llvm::Triple::TvOS:
case llvm::Triple::WatchOS:
+ case llvm::Triple::XROS:
// NEED_BRIDGEOS_TRIPLE case llvm::Triple::BridgeOS:
if (triple_ref.getVendor() != llvm::Triple::Apple) {
return nullptr;
diff --git a/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.cpp b/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.cpp
index 4451d8c7689a28..261592558095b4 100644
--- a/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.cpp
+++ b/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.cpp
@@ -55,6 +55,7 @@ DynamicLoader *DynamicLoaderMacOS::CreateInstance(Process *process,
case llvm::Triple::IOS:
case llvm::Triple::TvOS:
case llvm::Triple::WatchOS:
+ case llvm::Triple::XROS:
// NEED_BRIDGEOS_TRIPLE case llvm::Triple::BridgeOS:
create = triple_ref.getVendor() == llvm::Triple::Apple;
break;
diff --git a/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.cpp b/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.cpp
index 0bd465aba2d8a2..7e589b0d7af2c7 100644
--- a/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.cpp
+++ b/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.cpp
@@ -75,6 +75,7 @@ DynamicLoader *DynamicLoaderMacOSXDYLD::CreateInstance(Process *process,
case llvm::Triple::IOS:
case llvm::Triple::TvOS:
case llvm::Triple::WatchOS:
+ case llvm::Triple::XROS:
// NEED_BRIDGEOS_TRIPLE case llvm::Triple::BridgeOS:
create = triple_ref.getVendor() == llvm::Triple::Apple;
break;
diff --git a/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp b/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp
index ff5c79aa2455b0..b652ede9b1f518 100644
--- a/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp
+++ b/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp
@@ -830,6 +830,7 @@ uint32_t EmulateInstructionARM::GetFramePointerRegisterNumber() const {
case llvm::Triple::IOS:
case llvm::Triple::TvOS:
case llvm::Triple::WatchOS:
+ case llvm::Triple::XROS:
// NEED_BRIDGEOS_TRIPLE case llvm::Triple::BridgeOS:
is_apple = true;
break;
diff --git a/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp b/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
index e40ba8d3addb51..8cb9a5989d8984 100644
--- a/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
+++ b/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
@@ -4916,6 +4916,14 @@ struct OSEnv {
environment =
llvm::Triple::getEnvironmentTypeName(llvm::Triple::Simulator);
return;
+ case llvm::MachO::PLATFORM_XROS:
+ os_type = llvm::Triple::getOSTypeName(llvm::Triple::XROS);
+ return;
+ case llvm::MachO::PLATFORM_XROS_SIMULATOR:
+ os_type = llvm::Triple::getOSTypeName(llvm::Triple::XROS);
+ environment =
+ llvm::Triple::getEnvironmentTypeName(llvm::Triple::Simulator);
+ return;
default: {
Log *log(GetLog(LLDBLog::Symbols | LLDBLog::Process));
LLDB_LOGF(log, "unsupported platform in LC_BUILD_VERSION");
@@ -6483,7 +6491,8 @@ bool ObjectFileMachO::SaveCore(const lldb::ProcessSP &process_sp,
(target_triple.getOS() == llvm::Triple::MacOSX ||
target_triple.getOS() == llvm::Triple::IOS ||
target_triple.getOS() == llvm::Triple::WatchOS ||
- target_triple.getOS() == llvm::Triple::TvOS)) {
+ target_triple.getOS() == llvm::Triple::TvOS ||
+ target_triple.getOS() == llvm::Triple::XROS)) {
// NEED_BRIDGEOS_TRIPLE target_triple.getOS() == llvm::Triple::BridgeOS))
// {
bool make_core = false;
diff --git a/lldb/source/Plugins/Platform/MacOSX/CMakeLists.txt b/lldb/source/Plugins/Platform/MacOSX/CMakeLists.txt
index fd3dffc948e814..8c1e9f4013fbb2 100644
--- a/lldb/source/Plugins/Platform/MacOSX/CMakeLists.txt
+++ b/lldb/source/Plugins/Platform/MacOSX/CMakeLists.txt
@@ -14,6 +14,7 @@ list(APPEND PLUGIN_PLATFORM_MACOSX_SOURCES
PlatformRemoteAppleBridge.cpp
PlatformRemoteAppleTV.cpp
PlatformRemoteAppleWatch.cpp
+ PlatformRemoteAppleXR.cpp
PlatformRemoteDarwinDevice.cpp
PlatformRemoteMacOSX.cpp
PlatformRemoteiOS.cpp
diff --git a/lldb/source/Plugins/Platform/MacOSX/PlatformAppleSimulator.cpp b/lldb/source/Plugins/Platform/MacOSX/PlatformAppleSimulator.cpp
index dc59d904c74d82..0c4b566b7d5356 100644
--- a/lldb/source/Plugins/Platform/MacOSX/PlatformAppleSimulator.cpp
+++ b/lldb/source/Plugins/Platform/MacOSX/PlatformAppleSimulator.cpp
@@ -675,6 +675,41 @@ struct PlatformAppleWatchSimulator {
}
};
+static const char *g_xros_plugin_name = "xros-simulator";
+static const char *g_xros_description = "XROS simulator platform plug-in.";
+
+/// XRSimulator Plugin.
+struct PlatformXRSimulator {
+ static void Initialize() {
+ PluginManager::RegisterPlugin(g_xros_plugin_name, g_xros_description,
+ PlatformXRSimulator::CreateInstance);
+ }
+
+ static void Terminate() {
+ PluginManager::UnregisterPlugin(PlatformXRSimulator::CreateInstance);
+ }
+
+ static PlatformSP CreateInstance(bool force, const ArchSpec *arch) {
+ return PlatformAppleSimulator::CreateInstance(
+ "PlatformXRSimulator", g_xros_description,
+ ConstString(g_xros_plugin_name),
+ {llvm::Triple::aarch64, llvm::Triple::x86_64, llvm::Triple::x86},
+ llvm::Triple::XROS, {llvm::Triple::XROS},
+ {
+#ifdef __APPLE__
+#if __arm64__
+ "arm64e-apple-xros-simulator", "arm64-apple-xros-simulator",
+#else
+ "x86_64-apple-xros-simulator", "x86_64h-apple-xros-simulator",
+#endif
+#endif
+ },
+ "XRSimulator.Internal.sdk", "XRSimulator.sdk",
+ XcodeSDK::Type::XRSimulator,
+ CoreSimulatorSupport::DeviceType::ProductFamilyID::appleXR, force,
+ arch);
+ }
+};
static unsigned g_initialize_count = 0;
@@ -685,12 +720,14 @@ void PlatformAppleSimulator::Initialize() {
PlatformiOSSimulator::Initialize();
PlatformAppleTVSimulator::Initialize();
PlatformAppleWatchSimulator::Initialize();
+ PlatformXRSimulator::Initialize();
}
}
void PlatformAppleSimulator::Terminate() {
if (g_initialize_count > 0)
if (--g_initialize_count == 0) {
+ PlatformXRSimulator::Terminate();
PlatformAppleWatchSimulator::Terminate();
PlatformAppleTVSimulator::Terminate();
PlatformiOSSimulator::Terminate();
diff --git a/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp b/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
index ca7ff5a99f9060..6fb5bbfbe417ba 100644
--- a/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
+++ b/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
@@ -796,6 +796,9 @@ FileSpec PlatformDarwin::GetSDKDirectoryForModules(XcodeSDK::Type sdk_type) {
case XcodeSDK::Type::AppleTVSimulator:
sdks_spec.AppendPathComponent("AppleTVSimulator.platform");
break;
+ case XcodeSDK::Type::XRSimulator:
+ sdks_spec.AppendPathComponent("XRSimulator.platform");
+ break;
default:
llvm_unreachable("unsupported sdk");
}
@@ -1032,6 +1035,9 @@ void PlatformDarwin::AddClangModuleCompilationOptionsForSDKType(
case XcodeSDK::Type::watchOS:
use_current_os_version = get_host_os() == llvm::Triple::WatchOS;
break;
+ case XcodeSDK::Type::XROS:
+ use_current_os_version = get_host_os() == llvm::Triple::XROS;
+ break;
default:
break;
}
@@ -1049,8 +1055,10 @@ void PlatformDarwin::AddClangModuleCompilationOptionsForSDKType(
version = object_file->GetMinimumOSVersion();
}
}
- // Only add the version-min options if we got a version from somewhere
- if (!version.empty() && sdk_type != XcodeSDK::Type::Linux) {
+ // Only add the version-min options if we got a version from somewhere.
+ // clang has no version-min clang flag for XROS.
+ if (!version.empty() && sdk_type != XcodeSDK::Type::Linux &&
+ sdk_type != XcodeSDK::Type::XROS) {
#define OPTION(PREFIX, NAME, VAR, ...) \
llvm::StringRef opt_##VAR = NAME; \
(void)opt_##VAR;
@@ -1079,6 +1087,9 @@ void PlatformDarwin::AddClangModuleCompilationOptionsForSDKType(
case XcodeSDK::Type::watchOS:
minimum_version_option << opt_mwatchos_version_min_EQ;
break;
+ case XcodeSDK::Type::XRSimulator:
+ case XcodeSDK::Type::XROS:
+ // FIXME: Pass the right argument once it exists.
case XcodeSDK::Type::bridgeOS:
case XcodeSDK::Type::Linux:
case XcodeSDK::Type::unknown:
@@ -1343,6 +1354,8 @@ llvm::Triple::OSType PlatformDarwin::GetHostOSType() {
return llvm::Triple::TvOS;
#elif TARGET_OS_BRIDGE
return llvm::Triple::BridgeOS;
+#elif TARGET_OS_XR
+ return llvm::Triple::XROS;
#else
#error "LLDB being compiled for an unrecognized Darwin OS"
#endif
diff --git a/lldb/source/Plugins/Platform/MacOSX/PlatformMacOSX.cpp b/lldb/source/Plugins/Platform/MacOSX/PlatformMacOSX.cpp
index ba412da62e57b0..dad6dcd1339553 100644
--- a/lldb/source/Plugins/Platform/MacOSX/PlatformMacOSX.cpp
+++ b/lldb/source/Plugins/Platform/MacOSX/PlatformMacOSX.cpp
@@ -15,6 +15,7 @@
#include "PlatformRemoteAppleBridge.h"
#include "PlatformRemoteAppleTV.h"
#include "PlatformRemoteAppleWatch.h"
+#include "PlatformRemoteAppleXR.h"
#endif
#include "lldb/Breakpoint/BreakpointLocation.h"
#include "lldb/Core/Debugger.h"
@@ -53,6 +54,7 @@ void PlatformMacOSX::Initialize() {
PlatformRemoteAppleTV::Initialize();
PlatformRemoteAppleWatch::Initialize();
PlatformRemoteAppleBridge::Initialize();
+ PlatformRemoteAppleXR::Initialize();
#endif
if (g_initialize_count++ == 0) {
@@ -75,6 +77,7 @@ void PlatformMacOSX::Terminate() {
}
#if defined(__APPLE__)
+ PlatformRemoteAppleXR::Terminate();
PlatformRemoteAppleBridge::Terminate();
PlatformRemoteAppleWatch::Terminate();
PlatformRemoteAppleTV::Terminate();
diff --git a/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleXR.cpp b/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleXR.cpp
new file mode 100644
index 00000000000000..37aa80817a7460
--- /dev/null
+++ b/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleXR.cpp
@@ -0,0 +1,157 @@
+//===-- PlatformRemoteAppleXR.cpp -----------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include <string>
+#include <vector>
+
+#include "PlatformRemoteAppleXR.h"
+#include "lldb/Breakpoint/BreakpointLocation.h"
+#include "lldb/Core/Module.h"
+#include "lldb/Core/ModuleList.h"
+#include "lldb/Core/PluginManager.h"
+#include "lldb/Target/Process.h"
+#include "lldb/Target/Target.h"
+#include "lldb/Utility/ArchSpec.h"
+#include "lldb/Utility/FileSpec.h"
+#include "lldb/Utility/LLDBLog.h"
+#include "lldb/Utility/Log.h"
+
+using namespace lldb;
+using namespace lldb_private;
+
+// Static Variables
+static uint32_t g_xr_initialize_count = 0;
+
+// Static Functions
+void PlatformRemoteAppleXR::Initialize() {
+ PlatformDarwin::Initialize();
+
+ if (g_xr_initialize_count++ == 0) {
+ PluginManager::RegisterPlugin(PlatformRemoteAppleXR::GetPluginNameStatic(),
+ PlatformRemoteAppleXR::GetDescriptionStatic(),
+ PlatformRemoteAppleXR::CreateInstance);
+ }
+}
+
+void PlatformRemoteAppleXR::Terminate() {
+ if (g_xr_initialize_count > 0) {
+ if (--g_xr_initialize_count == 0) {
+ PluginManager::UnregisterPlugin(PlatformRemoteAppleXR::CreateInstance);
+ }
+ }
+
+ PlatformDarwin::Terminate();
+}
+
+PlatformSP PlatformRemoteAppleXR::CreateInstance(bool force,
+ const ArchSpec *arch) {
+ Log *log = GetLog(LLDBLog::Platform);
+ if (log) {
+ const char *arch_name;
+ if (arch && arch->GetArchitectureName())
+ arch_name = arch->GetArchitectureName();
+ else
+ arch_name = "<null>";
+
+ const char *triple_cstr =
+ arch ? arch->GetTriple().getTriple().c_str() : "<null>";
+
+ LLDB_LOGF(log, "PlatformRemoteAppleXR::%s(force=%s, arch={%s,%s})",
+ __FUNCTION__, force ? "true" : "false", arch_name, triple_cstr);
+ }
+
+ bool create = force;
+ if (!create && arch && arch->IsValid()) {
+ switch (arch->GetMachine()) {
+ case llvm::Triple::arm:
+ case llvm::Triple::aarch64:
+ case llvm::Triple::aarch64_32:
+ case llvm::Triple::thumb: {
+ const llvm::Triple &triple = arch->GetTriple();
+ llvm::Triple::VendorType vendor = triple.getVendor();
+ switch (vendor) {
+ case llvm::Triple::Apple:
+ create = true;
+ break;
+
+#if defined(__APPLE__)
+ // Only accept "unknown" for the vendor if the host is Apple and
+ // "unknown" wasn't specified (it was just returned because it was NOT
+ // specified)
+ case llvm::Triple::UnknownVendor:
+ create = !arch->TripleVendorWasSpecified();
+ break;
+
+#endif
+ default:
+ break;
+ }
+ if (create) {
+ switch (triple.getOS()) {
+ case llvm::Triple::XROS: // This is the right triple value for Apple
+ // XR debugging
+ break;
+
+ default:
+ create = false;
+ break;
+ }
+ }
+ } break;
+ default:
+ break;
+ }
+ }
+
+#if defined(__XROS_DISCLOSED__) && defined(TARGET_OS_XR) && TARGET_OS_XR == 1
+ // If lldb is running on a XR device, this isn't a RemoteXR.
+ if (force == false) {
+ create = false;
+ }
+#endif
+
+ if (create) {
+ LLDB_LOGF(log, "PlatformRemoteAppleXR::%s() creating platform",
+ __FUNCTION__);
+
+ return lldb::PlatformSP(new PlatformRemoteAppleXR());
+ }
+
+ LLDB_LOGF(log, "PlatformRemoteAppleXR::%s() aborting creation of platform",
+ __FUNCTION__);
+
+ return lldb::PlatformSP();
+}
+
+llvm::StringRef PlatformRemoteAppleXR::GetPluginNameStatic() {
+ return "remote-xros";
+}
+
+llvm::StringRef PlatformRemoteAppleXR::GetDescriptionStatic() {
+ return "Remote Apple XR platform plug-in.";
+}
+
+/// Default Constructor
+PlatformRemoteAppleXR::PlatformRemoteAppleXR() : PlatformRemoteDarwinDevice() {}
+
+std::vector<lldb_private::ArchSpec>
+PlatformRemoteAppleXR::GetSupportedArchitectures(
+ const ArchSpec &process_host_arch) {
+ std::vector<ArchSpec> result;
+ result.push_back(ArchSpec("arm64-apple-xros"));
+ result.push_back(ArchSpec("arm64-apple-xros"));
+ return result;
+}
+
+llvm::StringRef PlatformRemoteAppleXR::GetDeviceSupportDirectoryName() {
+ return "XROS DeviceSupport";
+}
+
+llvm::StringRef PlatformRemoteAppleXR::GetPlatformName() {
+ return "XROS.platform";
+}
diff --git a/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleXR.h b/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleXR.h
new file mode 100644
index 00000000000000..4fed6e15eda31c
--- /dev/null
+++ b/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleXR.h
@@ -0,0 +1,38 @@
+//===-- PlatformRemoteAppleXR.h ---------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "PlatformRemoteDarwinDevice.h"
+
+namespace lldb_private {
+class PlatformRemoteAppleXR : public PlatformRemoteDarwinDevice {
+public:
+ PlatformRemoteAppleXR();
+
+ static lldb::PlatformSP CreateInstance(bool force,
+ const lldb_private::ArchSpec *arch);
+
+ static void Initialize();
+
+ static void Terminate();
+
+ static llvm::StringRef GetPluginNameStatic();
+
+ static llvm::StringRef GetDescriptionStatic();
+
+ llvm::StringRef GetDescription() override { return GetDescriptionStatic(); }
+
+ llvm::StringRef GetPluginName() override { return GetPluginNameStatic(); }
+
+ std::vector<lldb_private::ArchSpec> GetSupportedArchitectures(
+ const lldb_private::ArchSpec &process_host_arch) override;
+
+protected:
+ llvm::StringRef GetDeviceSupportDirectoryName() override;
+ llvm::StringRef GetPlatformName() override;
+};
+} // namespace lldb_private
diff --git a/lldb/source/Plugins/Platform/MacOSX/objcxx/PlatformiOSSimulatorCoreSimulatorSupport.h b/lldb/source/Plugins/Platform/MacOSX/objcxx/PlatformiOSSimulatorCoreSimulatorSupport.h
index 1889be65e196d7..b2956054d50bf4 100644
--- a/lldb/source/Plugins/Platform/MacOSX/objcxx/PlatformiOSSimulatorCoreSimulatorSupport.h
+++ b/lldb/source/Plugins/Platform/MacOSX/objcxx/PlatformiOSSimulatorCoreSimulatorSupport.h
@@ -73,7 +73,8 @@ class DeviceType {
iPhone = 1,
iPad = 2,
appleTV = 3,
- appleWatch = 4
+ appleWatch = 4,
+ appleXR = 7,
};
DeviceType();
diff --git a/lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp b/lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp
index de739acf5b2a52..755b3a773692e3 100644
--- a/lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp
+++ b/lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp
@@ -125,6 +125,7 @@ bool ProcessKDP::CanDebug(TargetSP target_sp, bool plugin_specified_by_name) {
case llvm::Triple::IOS: // For arm targets
case llvm::Triple::TvOS:
case llvm::Triple::WatchOS:
+ case llvm::Triple::XROS:
if (triple_ref.getVendor() == llvm::Triple::Apple) {
ObjectFile *exe_objfile = exe_module->GetObjectFile();
if (exe_objfile->GetType() == ObjectFile::eTypeExecutable &&
diff --git a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
index ad72b3d121e673..f87f28ceea1a12 100644
--- a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
+++ b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
@@ -1180,7 +1180,7 @@ bool GDBRemoteCommunicationClient::GetDefaultThreadId(lldb::tid_t &tid) {
static void ParseOSType(llvm::StringRef value, std::string &os_name,
std::string &environment) {
if (value.equals("iossimulator") || value.equals("tvossimulator") ||
- value.equals("watchossimulator")) {
+ value.equals("watchossimulator") || value.equals("xrossimulator")) {
environment...
[truncated]
|
You can test this locally with the following command:git-clang-format --diff 5aea6ba8f5f06e06887fe5c5c8740895907f6540 6f6d93b6cc413d54dbdec050000f30ede00ffdb4 -- lldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleXR.cpp lldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleXR.h lldb/include/lldb/Utility/XcodeSDK.h lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.cpp lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.cpp lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp lldb/source/Plugins/Platform/MacOSX/PlatformAppleSimulator.cpp lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp lldb/source/Plugins/Platform/MacOSX/PlatformMacOSX.cpp lldb/source/Plugins/Platform/MacOSX/objcxx/PlatformiOSSimulatorCoreSimulatorSupport.h lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp lldb/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.cpp lldb/source/Utility/XcodeSDK.cpp lldb/tools/debugserver/source/RNBRemote.cpp lldb/unittests/Utility/XcodeSDKTest.cpp View the diff from clang-format here.diff --git a/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp b/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
index 4128ac1cdf..fff08408cd 100644
--- a/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
+++ b/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
@@ -167,7 +167,7 @@ DynamicLoader *DynamicLoaderDarwinKernel::CreateInstance(Process *process,
case llvm::Triple::TvOS:
case llvm::Triple::WatchOS:
case llvm::Triple::XROS:
- // NEED_BRIDGEOS_TRIPLE case llvm::Triple::BridgeOS:
+ // NEED_BRIDGEOS_TRIPLE case llvm::Triple::BridgeOS:
if (triple_ref.getVendor() != llvm::Triple::Apple) {
return nullptr;
}
diff --git a/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.cpp b/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.cpp
index 2615925580..d337de9a68 100644
--- a/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.cpp
+++ b/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.cpp
@@ -56,7 +56,7 @@ DynamicLoader *DynamicLoaderMacOS::CreateInstance(Process *process,
case llvm::Triple::TvOS:
case llvm::Triple::WatchOS:
case llvm::Triple::XROS:
- // NEED_BRIDGEOS_TRIPLE case llvm::Triple::BridgeOS:
+ // NEED_BRIDGEOS_TRIPLE case llvm::Triple::BridgeOS:
create = triple_ref.getVendor() == llvm::Triple::Apple;
break;
default:
diff --git a/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.cpp b/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.cpp
index 7e589b0d7a..f8412aa72b 100644
--- a/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.cpp
+++ b/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.cpp
@@ -76,7 +76,7 @@ DynamicLoader *DynamicLoaderMacOSXDYLD::CreateInstance(Process *process,
case llvm::Triple::TvOS:
case llvm::Triple::WatchOS:
case llvm::Triple::XROS:
- // NEED_BRIDGEOS_TRIPLE case llvm::Triple::BridgeOS:
+ // NEED_BRIDGEOS_TRIPLE case llvm::Triple::BridgeOS:
create = triple_ref.getVendor() == llvm::Triple::Apple;
break;
default:
diff --git a/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp b/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp
index b652ede9b1..3423fbe223 100644
--- a/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp
+++ b/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp
@@ -831,7 +831,7 @@ uint32_t EmulateInstructionARM::GetFramePointerRegisterNumber() const {
case llvm::Triple::TvOS:
case llvm::Triple::WatchOS:
case llvm::Triple::XROS:
- // NEED_BRIDGEOS_TRIPLE case llvm::Triple::BridgeOS:
+ // NEED_BRIDGEOS_TRIPLE case llvm::Triple::BridgeOS:
is_apple = true;
break;
default:
diff --git a/lldb/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.cpp b/lldb/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.cpp
index a97e51cc7b..ba0f68e47e 100644
--- a/lldb/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.cpp
+++ b/lldb/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.cpp
@@ -62,7 +62,7 @@ SystemRuntime *SystemRuntimeMacOSX::CreateInstance(Process *process) {
case llvm::Triple::TvOS:
case llvm::Triple::WatchOS:
case llvm::Triple::XROS:
- // NEED_BRIDGEOS_TRIPLE case llvm::Triple::BridgeOS:
+ // NEED_BRIDGEOS_TRIPLE case llvm::Triple::BridgeOS:
create = triple_ref.getVendor() == llvm::Triple::Apple;
break;
default:
|
The suggested changes are orthogonal to the changes in this PR: they just happen to be on the preceding or proceeding lines. Going with the clang-format suggestions would introduce misleading indentation. I can work around it but that wouldn't belong in this PR. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, though someone more familiar with lldb code base should also review.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 🚀
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm.
@@ -1180,7 +1180,7 @@ bool GDBRemoteCommunicationClient::GetDefaultThreadId(lldb::tid_t &tid) { | |||
static void ParseOSType(llvm::StringRef value, std::string &os_name, | |||
std::string &environment) { | |||
if (value.equals("iossimulator") || value.equals("tvossimulator") || | |||
value.equals("watchossimulator")) { | |||
value.equals("watchossimulator") || value.equals("xrossimulator")) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see in llvm/TargetParser/Triple.cpp it will accept either "xros" or "visionos" for Triple::XROS, I think this should accept "visionossimulator" too.
Upstream support for debugging xros applications through LLDB.
a326e09
to
6f6d93b
Compare
Upstream support for debugging xros applications through LLDB.
Upstream support for debugging xros applications through LLDB. (cherry picked from commit 3b6a8f8)
Upstream support for debugging xros applications through LLDB. (cherry picked from commit 3b6a8f8)
Upstream support for debugging xros applications through LLDB.