Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Correctly identify iOS simulator processes in debugserver.
Starting with iOS 13 simulator binaries are identified with an explicit platform in the new LC_BUILD_VERSION load command. On older deployment targets using the LC_VERSION_MIN load commands, this patch detects when an ios process runs on a macOS host and updates the target triple with the "simulator" environment accordingly. (Patch re-applied without modifications, the bot failure was unrelated). This is part of https://bugs.swift.org/browse/SR-11971 rdar://problem/58438125 Differential Revision: https://reviews.llvm.org/D75696
- Loading branch information
1 parent
66a6fa6
commit 58c506d
Showing
5 changed files
with
100 additions
and
18 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
58 changes: 58 additions & 0 deletions
58
lldb/test/API/functionalities/gdb_remote_client/TestIOSSimulator.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
import lldb | ||
from lldbsuite.test.lldbtest import * | ||
from lldbsuite.test.decorators import * | ||
from gdbclientutils import * | ||
|
||
class TestIOSSimulator(GDBRemoteTestBase): | ||
""" | ||
Test that an ios simulator process is recognized as such. | ||
""" | ||
|
||
class MyResponder(MockGDBServerResponder): | ||
def __init__(self, host, process): | ||
self.host_ostype = host | ||
self.process_ostype = process | ||
MockGDBServerResponder.__init__(self) | ||
|
||
def qHostInfo(self): | ||
return "cputype:16777223;cpusubtype:8;ostype:%s;vendor:apple;os_version:10.15.4;maccatalyst_version:13.4;endian:little;ptrsize:8;"%self.host_ostype | ||
def qProcessInfo(self): | ||
return "pid:a860;parent-pid:d2a0;real-uid:1f5;real-gid:14;effective-uid:1f5;effective-gid:14;cputype:1000007;cpusubtype:8;ptrsize:8;ostype:%s;vendor:apple;endian:little;"%self.process_ostype | ||
def vCont(self): | ||
return "vCont;" | ||
|
||
def platform_test(self, host, process, expected_triple): | ||
self.server.responder = self.MyResponder(host, process) | ||
if self.TraceOn(): | ||
self.runCmd("log enable gdb-remote packets") | ||
self.addTearDownHook(lambda: self.runCmd("log disable gdb-remote packets")) | ||
|
||
target = self.dbg.CreateTargetWithFileAndArch(None, None) | ||
process = self.connect(target) | ||
triple = target.GetTriple() | ||
self.assertEqual(triple, expected_triple) | ||
|
||
@skipIfRemote | ||
def test_macos(self): | ||
self.platform_test(host="macosx", process="macosx", | ||
expected_triple="x86_64h-apple-macosx-") | ||
|
||
@skipIfRemote | ||
def test_ios_sim(self): | ||
self.platform_test(host="macosx", process="iossimulator", | ||
expected_triple="x86_64h-apple-ios-simulator") | ||
|
||
@skipIfRemote | ||
def test_catalyst(self): | ||
self.platform_test(host="macosx", process="maccatalyst", | ||
expected_triple="x86_64h-apple-ios-macabi") | ||
|
||
@skipIfRemote | ||
def test_tvos_sim(self): | ||
self.platform_test(host="macosx", process="tvossimulator", | ||
expected_triple="x86_64h-apple-tvos-simulator") | ||
|
||
@skipIfRemote | ||
def test_tvos_sim(self): | ||
self.platform_test(host="macosx", process="watchossimulator", | ||
expected_triple="x86_64h-apple-watchos-simulator") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters