[Lldb-commits] [lldb] 4ebe9b4 - Revert "Correctly identify iOS simulator processes in debugserver."

Adrian Prantl via lldb-commits lldb-commits at lists.llvm.org
Fri Mar 6 10:16:56 PST 2020


Author: Adrian Prantl
Date: 2020-03-06T10:16:47-08:00
New Revision: 4ebe9b498da5cfec48a91f50241c686153ab6122

URL: https://github.com/llvm/llvm-project/commit/4ebe9b498da5cfec48a91f50241c686153ab6122
DIFF: https://github.com/llvm/llvm-project/commit/4ebe9b498da5cfec48a91f50241c686153ab6122.diff

LOG: Revert "Correctly identify iOS simulator processes in debugserver."

This reverts commit 59d816d88464e93a89e0d9c80c8855ab1f453541.

It broke TestGDBRemoteClient.

Added: 
    

Modified: 
    lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
    lldb/test/API/functionalities/gdb_remote_client/TestWasm.py
    lldb/test/API/functionalities/gdb_remote_client/gdbclientutils.py
    lldb/tools/debugserver/source/MacOSX/MachProcess.mm

Removed: 
    lldb/test/API/functionalities/gdb_remote_client/TestIOSSimulator.py


################################################################################
diff  --git a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
index 500527221ebb..6021c2664b06 100644
--- a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
+++ b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
@@ -1131,20 +1131,6 @@ bool GDBRemoteCommunicationClient::GetDefaultThreadId(lldb::tid_t &tid) {
   return true;
 }
 
-static void ParseOSType(llvm::StringRef value, std::string &os_name,
-                        std::string &environment) {
-  if (value.equals("iossimulator") || value.equals("tvossimulator") ||
-      value.equals("watchossimulator")) {
-    environment = "simulator";
-    os_name = value.drop_back(environment.size()).str();
-  } else if (value.equals("maccatalyst")) {
-    os_name = "ios";
-    environment = "macabi";
-  } else {
-    os_name = value.str();
-  }
-}
-
 bool GDBRemoteCommunicationClient::GetHostInfo(bool force) {
   Log *log(ProcessGDBRemoteLog::GetLogIfAnyCategoryIsSet(GDBR_LOG_PROCESS));
 
@@ -1203,7 +1189,11 @@ bool GDBRemoteCommunicationClient::GetHostInfo(bool force) {
             extractor.GetHexByteString(m_os_kernel);
             ++num_keys_decoded;
           } else if (name.equals("ostype")) {
-            ParseOSType(value, os_name, environment);
+            if (value.equals("maccatalyst")) {
+              os_name = "ios";
+              environment = "macabi";
+            } else
+              os_name = std::string(value);
             ++num_keys_decoded;
           } else if (name.equals("vendor")) {
             vendor_name = std::string(value);
@@ -2063,7 +2053,11 @@ bool GDBRemoteCommunicationClient::GetCurrentProcessInfo(bool allow_lazy) {
           extractor.GetHexByteString(triple);
           ++num_keys_decoded;
         } else if (name.equals("ostype")) {
-          ParseOSType(value, os_name, environment);
+          if (value.equals("maccatalyst")) {
+            os_name = "ios";
+            environment = "macabi";
+          } else
+            os_name = std::string(value);
           ++num_keys_decoded;
         } else if (name.equals("vendor")) {
           vendor_name = std::string(value);

diff  --git a/lldb/test/API/functionalities/gdb_remote_client/TestIOSSimulator.py b/lldb/test/API/functionalities/gdb_remote_client/TestIOSSimulator.py
deleted file mode 100644
index ff165672b197..000000000000
--- a/lldb/test/API/functionalities/gdb_remote_client/TestIOSSimulator.py
+++ /dev/null
@@ -1,58 +0,0 @@
-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")

diff  --git a/lldb/test/API/functionalities/gdb_remote_client/TestWasm.py b/lldb/test/API/functionalities/gdb_remote_client/TestWasm.py
index fe24bff44d5d..8d0f2c89b73b 100644
--- a/lldb/test/API/functionalities/gdb_remote_client/TestWasm.py
+++ b/lldb/test/API/functionalities/gdb_remote_client/TestWasm.py
@@ -31,6 +31,8 @@ def __init__(self, obj_path, module_name = ""):
         MockGDBServerResponder.__init__(self)
 
     def respond(self, packet):
+        if packet == "qProcessInfo":
+            return self.qProcessInfo()
         if packet[0:13] == "qRegisterInfo":
             return self.qRegisterInfo(packet[13:])
         return MockGDBServerResponder.respond(self, packet)

diff  --git a/lldb/test/API/functionalities/gdb_remote_client/gdbclientutils.py b/lldb/test/API/functionalities/gdb_remote_client/gdbclientutils.py
index 944afd125951..feda8873d872 100644
--- a/lldb/test/API/functionalities/gdb_remote_client/gdbclientutils.py
+++ b/lldb/test/API/functionalities/gdb_remote_client/gdbclientutils.py
@@ -170,8 +170,6 @@ def respond(self, packet):
             return self.qQueryGDBServer()
         if packet == "qHostInfo":
             return self.qHostInfo()
-        if packet == "qProcessInfo":
-            return self.qProcessInfo()
         if packet == "qGetWorkingDir":
             return self.qGetWorkingDir()
         if packet == "qOffsets":
@@ -198,9 +196,6 @@ def qOffsets(self):
     def qHostInfo(self):
         return "ptrsize:8;endian:little;"
 
-    def qProcessInfo(self):
-        return "pid:1;ptrsize:8;endian:little;"
-    
     def qQueryGDBServer(self):
         return "E04"
 

diff  --git a/lldb/tools/debugserver/source/MacOSX/MachProcess.mm b/lldb/tools/debugserver/source/MacOSX/MachProcess.mm
index c862de973829..f6134e48a048 100644
--- a/lldb/tools/debugserver/source/MacOSX/MachProcess.mm
+++ b/lldb/tools/debugserver/source/MacOSX/MachProcess.mm
@@ -598,16 +598,6 @@ static bool FBSAddEventDataToOptions(NSMutableDictionary *options,
       plo_pthread_tsd_entry_size);
 }
 
-/// Determine whether this is running on macOS.
-/// Since debugserver runs on the same machine as the process, we can
-/// just look at the compilation target.
-static bool IsMacOSHost() {
-#if TARGET_OS_OSX == 1
-  return true;
-#else
-  return false;
-#endif
-}
 
 const char *MachProcess::GetDeploymentInfo(const struct load_command& lc,
                                            uint64_t load_command_address,
@@ -629,17 +619,15 @@ static bool IsMacOSHost() {
     minor_version = (vers_cmd.sdk >> 8) & 0xffu;
     patch_version = vers_cmd.sdk & 0xffu;
 
-    // Handle the older LC_VERSION load commands, which don't
-    // distinguish between simulator and real hardware.
     switch (cmd) {
     case LC_VERSION_MIN_IPHONEOS:
-      return IsMacOSHost() ? "iossimulator": "ios";
+      return "ios";
     case LC_VERSION_MIN_MACOSX:
       return "macosx";
     case LC_VERSION_MIN_TVOS:
-      return IsMacOSHost() ? "tvossimulator": "tvos";
+      return "tvos";
     case LC_VERSION_MIN_WATCHOS:
-      return IsMacOSHost() ? "watchossimulator" : "watchos";
+      return "watchos";
     default:
       return nullptr;
     }
@@ -661,17 +649,14 @@ static bool IsMacOSHost() {
     case PLATFORM_MACCATALYST:
       return "maccatalyst";
     case PLATFORM_IOS:
-      return "ios";
     case PLATFORM_IOSSIMULATOR:
-      return "iossimulator";
+      return "ios";
     case PLATFORM_TVOS:
-      return "tvos";
     case PLATFORM_TVOSSIMULATOR:
-      return "tvossimulator";
+      return "tvos";
     case PLATFORM_WATCHOS:
-      return "watchos";
     case PLATFORM_WATCHOSSIMULATOR:
-      return "watchossimulator";
+      return "watchos";
     case PLATFORM_BRIDGEOS:
       return "bridgeos";
     case PLATFORM_DRIVERKIT:


        


More information about the lldb-commits mailing list