[Lldb-commits] [lldb] r369990 - Send error message on failed attach from debugerserver.

Jason Molenda via lldb-commits lldb-commits at lists.llvm.org
Mon Aug 26 17:08:27 PDT 2019


Author: jmolenda
Date: Mon Aug 26 17:08:27 2019
New Revision: 369990

URL: http://llvm.org/viewvc/llvm-project?rev=369990&view=rev
Log:
Send error message on failed attach from debugerserver.

Instead of using a magic return error code from debugserver to
indicate that an attach failed because of SIP being enabled in
RNBRemote::HandlePacket_v, use the extended error reporting that
Pavel added to lldb/lldb-server in https://reviews.llvm.org/D45573


<rdar://problem/39398385> 

Modified:
    lldb/trunk/tools/debugserver/source/RNBRemote.cpp

Modified: lldb/trunk/tools/debugserver/source/RNBRemote.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/debugserver/source/RNBRemote.cpp?rev=369990&r1=369989&r2=369990&view=diff
==============================================================================
--- lldb/trunk/tools/debugserver/source/RNBRemote.cpp (original)
+++ lldb/trunk/tools/debugserver/source/RNBRemote.cpp Mon Aug 26 17:08:27 2019
@@ -2667,6 +2667,17 @@ void append_hex_value(std::ostream &ostr
   }
 }
 
+std::string cstring_to_asciihex_string(const char *str) {
+  std::string hex_str;
+  hex_str.reserve (strlen (str) * 2);
+  while (str && *str) {
+    char hexbuf[5];
+    snprintf (hexbuf, sizeof(hexbuf), "%02x", *str++);
+    hex_str += hexbuf;
+  }
+  return hex_str;
+}
+
 void append_hexified_string(std::ostream &ostrm, const std::string &string) {
   size_t string_size = string.size();
   const char *string_buf = string.c_str();
@@ -3818,8 +3829,13 @@ rnb_err_t RNBRemote::HandlePacket_v(cons
             }
           }
           if (attach_failed_due_to_sip) {
-            SendPacket("E87"); // E87 is the magic value which says that we are
-                               // not allowed to attach
+            std::string return_message = "E96;";
+            return_message += cstring_to_asciihex_string(
+                "Process attach denied, possibly because "
+                "System Integrity Protection is enabled and "
+                "process does not allow attaching.");
+
+            SendPacket(return_message.c_str());
             DNBLogError("Attach failed because process does not allow "
                         "attaching: \"%s\".",
                         err_str);




More information about the lldb-commits mailing list