Revert r280137 and 280139 and subsequent build fixes

The rewrite of StringExtractor::GetHexMaxU32 changes functionality in a way which makes
lldb-server crash. The crash (assert) happens when parsing the "qRegisterInfo0" packet, because
the function tries to drop_front more bytes than the packet contains. It's not clear to me
whether we should consider this a bug in the caller or the callee, but it any case, it worked
before, so I am reverting this until we can figure out what the proper interface should be.

llvm-svn: 280207
diff --git a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp
index 5641b22..3361ffa 100644
--- a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp
+++ b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp
@@ -966,7 +966,7 @@
     {
         std::string str;
         packet.GetHexByteString(str);
-        m_process_launch_info.GetEnvironmentEntries().AppendArgument(str);
+        m_process_launch_info.GetEnvironmentEntries().AppendArgument(str.c_str());
         return SendOKResponse();
     }
     return SendErrorResponse(12);
@@ -979,7 +979,8 @@
     const uint32_t bytes_left = packet.GetBytesLeft();
     if (bytes_left > 0)
     {
-        ArchSpec arch_spec(packet.Peek(), nullptr);
+        const char* arch_triple = packet.Peek();
+        ArchSpec arch_spec(arch_triple,NULL);
         m_process_launch_info.SetArchitecture(arch_spec);
         return SendOKResponse();
     }