diff --git a/lldb/source/Host/macosx/objcxx/HostInfoMacOSX.mm b/lldb/source/Host/macosx/objcxx/HostInfoMacOSX.mm --- a/lldb/source/Host/macosx/objcxx/HostInfoMacOSX.mm +++ b/lldb/source/Host/macosx/objcxx/HostInfoMacOSX.mm @@ -379,6 +379,13 @@ args.AppendArgument("--sdk"); args.AppendArgument(sdk); + Log *log = GetLog(LLDBLog::Host); + if (log) { + std::string cmdstr; + args.GetCommandString(cmdstr); + log->Printf("GetXcodeSDK() running shell cmd '%s'", cmdstr.c_str()); + } + int status = 0; int signo = 0; std::string output_str; diff --git a/lldb/source/Plugins/Platform/MacOSX/PlatformAppleSimulator.h b/lldb/source/Plugins/Platform/MacOSX/PlatformAppleSimulator.h --- a/lldb/source/Plugins/Platform/MacOSX/PlatformAppleSimulator.h +++ b/lldb/source/Plugins/Platform/MacOSX/PlatformAppleSimulator.h @@ -59,7 +59,8 @@ llvm::Triple::OSType preferred_os, llvm::SmallVector supported_os, llvm::SmallVector supported_triples, - llvm::StringRef sdk, XcodeSDK::Type sdk_type, + std::string sdk_name_preferred, std::string sdk_name_secondary, + XcodeSDK::Type sdk_type, CoreSimulatorSupport::DeviceType::ProductFamilyID kind, bool force, const ArchSpec *arch); diff --git a/lldb/source/Plugins/Platform/MacOSX/PlatformAppleSimulator.cpp b/lldb/source/Plugins/Platform/MacOSX/PlatformAppleSimulator.cpp --- a/lldb/source/Plugins/Platform/MacOSX/PlatformAppleSimulator.cpp +++ b/lldb/source/Plugins/Platform/MacOSX/PlatformAppleSimulator.cpp @@ -274,13 +274,23 @@ return result; } +static llvm::StringRef GetXcodeSDKDir(std::string preferred, + std::string secondary) { + llvm::StringRef sdk; + sdk = HostInfo::GetXcodeSDKPath(XcodeSDK(std::move(preferred))); + if (sdk.empty()) + sdk = HostInfo::GetXcodeSDKPath(XcodeSDK(std::move(secondary))); + return sdk; +} + PlatformSP PlatformAppleSimulator::CreateInstance( const char *class_name, const char *description, ConstString plugin_name, llvm::SmallVector supported_arch, llvm::Triple::OSType preferred_os, llvm::SmallVector supported_os, llvm::SmallVector supported_triples, - llvm::StringRef sdk, lldb_private::XcodeSDK::Type sdk_type, + std::string sdk_name_preferred, std::string sdk_name_secondary, + lldb_private::XcodeSDK::Type sdk_type, CoreSimulatorSupport::DeviceType::ProductFamilyID kind, bool force, const ArchSpec *arch) { Log *log = GetLog(LLDBLog::Platform); @@ -338,6 +348,8 @@ if (create) { LLDB_LOGF(log, "%s::%s() creating platform", class_name, __FUNCTION__); + llvm::StringRef sdk = + GetXcodeSDKDir(sdk_name_preferred, sdk_name_secondary); return PlatformSP(new PlatformAppleSimulator( class_name, description, plugin_name, preferred_os, supported_triples, sdk, sdk_type, kind)); @@ -514,15 +526,6 @@ !arch->TripleEnvironmentWasSpecified(); } -static llvm::StringRef GetXcodeSDKDir(std::string preferred, - std::string secondary) { - llvm::StringRef sdk; - sdk = HostInfo::GetXcodeSDKPath(XcodeSDK(std::move(preferred))); - if (sdk.empty()) - sdk = HostInfo::GetXcodeSDKPath(XcodeSDK(std::move(secondary))); - return sdk; -} - static const char *g_ios_plugin_name = "ios-simulator"; static const char *g_ios_description = "iPhone simulator platform plug-in."; @@ -540,10 +543,6 @@ static PlatformSP CreateInstance(bool force, const ArchSpec *arch) { if (shouldSkipSimulatorPlatform(force, arch)) return nullptr; - llvm::StringRef sdk; - sdk = HostInfo::GetXcodeSDKPath(XcodeSDK("iPhoneSimulator.Internal.sdk")); - if (sdk.empty()) - sdk = HostInfo::GetXcodeSDKPath(XcodeSDK("iPhoneSimulator.sdk")); return PlatformAppleSimulator::CreateInstance( "PlatformiOSSimulator", g_ios_description, @@ -566,7 +565,7 @@ #endif #endif }, - GetXcodeSDKDir("iPhoneSimulator.Internal.sdk", "iPhoneSimulator.sdk"), + "iPhoneSimulator.Internal.sdk", "iPhoneSimulator.sdk", XcodeSDK::Type::iPhoneSimulator, CoreSimulatorSupport::DeviceType::ProductFamilyID::iPhone, force, arch); } @@ -604,7 +603,7 @@ #endif #endif }, - GetXcodeSDKDir("AppleTVSimulator.Internal.sdk", "AppleTVSimulator.sdk"), + "AppleTVSimulator.Internal.sdk", "AppleTVSimulator.sdk", XcodeSDK::Type::AppleTVSimulator, CoreSimulatorSupport::DeviceType::ProductFamilyID::appleTV, force, arch); @@ -646,7 +645,7 @@ #endif #endif }, - GetXcodeSDKDir("WatchSimulator.Internal.sdk", "WatchSimulator.sdk"), + "WatchSimulator.Internal.sdk", "WatchSimulator.sdk", XcodeSDK::Type::WatchSimulator, CoreSimulatorSupport::DeviceType::ProductFamilyID::appleWatch, force, arch);