llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-lldb Author: Jonas Devlieghere (JDevlieghere) <details> <summary>Changes</summary> Upstream 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: - (modified) lldb/include/lldb/Utility/XcodeSDK.h (+2) - (modified) lldb/source/Host/macosx/objcxx/HostInfoMacOSX.mm (+3) - (modified) lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp (+1) - (modified) lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.cpp (+1) - (modified) lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.cpp (+1) - (modified) lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp (+1) - (modified) lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp (+10-1) - (modified) lldb/source/Plugins/Platform/MacOSX/CMakeLists.txt (+1) - (modified) lldb/source/Plugins/Platform/MacOSX/PlatformAppleSimulator.cpp (+37) - (modified) lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp (+15-2) - (modified) lldb/source/Plugins/Platform/MacOSX/PlatformMacOSX.cpp (+3) - (added) lldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleXR.cpp (+157) - (added) lldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleXR.h (+38) - (modified) lldb/source/Plugins/Platform/MacOSX/objcxx/PlatformiOSSimulatorCoreSimulatorSupport.h (+2-1) - (modified) lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp (+1) - (modified) lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp (+1-1) - (modified) lldb/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.cpp (+1) - (modified) lldb/source/Utility/XcodeSDK.cpp (+23) - (modified) lldb/tools/debugserver/source/MacOSX/MachProcess.mm (+12) - (modified) lldb/tools/debugserver/source/RNBRemote.cpp (+7-4) - (modified) lldb/unittests/Utility/XcodeSDKTest.cpp (+22) ``````````diff 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] `````````` </details> https://github.com/llvm/llvm-project/pull/78389 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits