llvm-project/lldb/source
Jonas Devlieghere 8faca2ed6a [lldb] Fix platform selection on Apple Silicon
Currently, when connecting to a remote iOS device from the command line
on Apple Silicon, we end up using the host platform (PlatfromMacOSX)
instead of remote-ios (PlatformRemoteiOS). This happens because
PlatfromMacOSX includes arm64-apple-ios and arm64e-apple-ios as
compatible architectures, presumably to support debugging iOS Apps on
Apple Silicon [1].

This is a problem for debugging remote ios devices, because the host
platform doesn't look for an expanded shared cache on disk and as a
result we end up reading everything from memory, incurring a significant
performance hit.

The crux of this patch is to make PlatfromMacOSX *not* compatible with
arm64(e)-apple-ios. This also means that we now use remote-ios
(PlatformRemoteiOS) as the platform for debugging iOS apps on Apple
Silicon. This has the (unintended) side effect that unlike we do for the
host platform, we no longer check our local shared cache, and incur a
performance hit on debugging these apps.

To avoid that, PlatformRemoteiOS now also check the local cache to
support this use case, which is cheap enough to do unconditionally for
PlatformRemoteiOS.

[1] https://support.apple.com/guide/app-store/iphone-ipad-apps-mac-apple-silicon-fird2c7092da/mac

Differential revision: https://reviews.llvm.org/D117340
2022-01-14 16:03:49 -08:00
..
API [lldb] Remove LLDB_RECORD_DUMMY_* macros 2022-01-10 12:05:54 -08:00
Breakpoint Fix bugprone argument comments. 2022-01-09 12:21:02 -08:00
Commands [lldb] Remove non address bits from memory read arguments 2022-01-11 13:24:09 +00:00
Core [lldb] Create a property to store the REPL language 2022-01-05 15:03:46 -08:00
DataFormatters [lldb] Remove summary for signed char * 2022-01-06 19:52:24 +01:00
Expression Fix bugprone argument comments. 2022-01-09 12:21:02 -08:00
Host [lldb] fix memory leak in "GetGDBServerRegisterInfoXMLAndProcess" 2022-01-10 14:33:09 -08:00
Initialization [lldb] Make lldbVersion a full fledged library 2021-12-08 15:14:34 -08:00
Interpreter [lldb] Don't print "Command Options Usage:" for an alias with no options 2022-01-12 10:07:38 +00:00
Plugins [lldb] Fix platform selection on Apple Silicon 2022-01-14 16:03:49 -08:00
Symbol Use true/false instead of 1/0 (NFC) 2022-01-09 12:21:06 -08:00
Target Fix clang-tidy bugprone-argument-comment that was mixed up 2022-01-11 11:12:28 -08:00
Utility [lldb] Remove reproducer instrumentation 2022-01-09 21:40:55 -08:00
Version [lldb] Use LLDB_VERSION_STRING instead of CLANG_VERSION_STRING 2021-12-13 16:58:39 -08:00
CMakeLists.txt [lldb] Make lldbVersion a full fledged library 2021-12-08 15:14:34 -08:00