Modified the stop reply packet to be able to send the thread name using the
new "hexname" key for the "key:value;" duple that is part of the packet. This
allows for thread names to contain special characters such as $ # : ; + -

Debugserver now detects if the thread name contains special characters and
sends the chars in hex format if needed.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@123053 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Utility/StringExtractor.cpp b/source/Utility/StringExtractor.cpp
index dc1483d..c410ffd 100644
--- a/source/Utility/StringExtractor.cpp
+++ b/source/Utility/StringExtractor.cpp
@@ -336,6 +336,16 @@
     return fail_value;
 }
 
+size_t
+StringExtractor::GetHexByteString (std::string &str)
+{
+    str.clear();
+    char ch;
+    while ((ch = GetHexU8()) != '\0')
+        str.append(1, ch);
+    return str.size();
+}
+
 bool
 StringExtractor::GetNameColonValue (std::string &name, std::string &value)
 {
diff --git a/source/Utility/StringExtractor.h b/source/Utility/StringExtractor.h
index 3817ecb..ed67b92 100644
--- a/source/Utility/StringExtractor.h
+++ b/source/Utility/StringExtractor.h
@@ -110,6 +110,9 @@
     uint64_t
     GetHexWithFixedSize (uint32_t byte_size, bool little_endian, uint64_t fail_value);
 
+    size_t
+    GetHexByteString (std::string &str);
+
 protected:
     //------------------------------------------------------------------
     // For StringExtractor only