[Lldb-commits] [lldb] r296941 - Move UUID from Core -> Utility.

Zachary Turner via lldb-commits lldb-commits at lists.llvm.org
Fri Mar 3 17:28:55 PST 2017


Author: zturner
Date: Fri Mar  3 19:28:55 2017
New Revision: 296941

URL: http://llvm.org/viewvc/llvm-project?rev=296941&view=rev
Log:
Move UUID from Core -> Utility.

Added:
    lldb/trunk/include/lldb/Utility/UUID.h
    lldb/trunk/source/Utility/UUID.cpp
Removed:
    lldb/trunk/include/lldb/Core/UUID.h
    lldb/trunk/source/Core/UUID.cpp
Modified:
    lldb/trunk/include/lldb/Core/Module.h
    lldb/trunk/include/lldb/Core/ModuleSpec.h
    lldb/trunk/include/lldb/Interpreter/OptionValueUUID.h
    lldb/trunk/include/lldb/Target/DynamicLoader.h
    lldb/trunk/source/Core/CMakeLists.txt
    lldb/trunk/source/Core/DataExtractor.cpp
    lldb/trunk/source/Host/common/Symbols.cpp
    lldb/trunk/source/Host/macosx/Symbols.cpp
    lldb/trunk/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.h
    lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.h
    lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.h
    lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.h
    lldb/trunk/source/Plugins/DynamicLoader/Static/DynamicLoaderStatic.h
    lldb/trunk/source/Plugins/ObjectFile/ELF/ObjectFileELF.h
    lldb/trunk/source/Plugins/ObjectFile/JIT/ObjectFileJIT.cpp
    lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
    lldb/trunk/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp
    lldb/trunk/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp
    lldb/trunk/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp
    lldb/trunk/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.h
    lldb/trunk/source/Utility/CMakeLists.txt

Modified: lldb/trunk/include/lldb/Core/Module.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Core/Module.h?rev=296941&r1=296940&r2=296941&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Core/Module.h (original)
+++ lldb/trunk/include/lldb/Core/Module.h Fri Mar  3 19:28:55 2017
@@ -14,7 +14,7 @@
 
 // Project includes
 #include "lldb/Core/ArchSpec.h"
-#include "lldb/Core/UUID.h"
+#include "lldb/Utility/UUID.h"
 #include "lldb/Host/FileSpec.h"
 #include "lldb/Symbol/TypeSystem.h"
 #include "lldb/Target/PathMappingList.h"

Modified: lldb/trunk/include/lldb/Core/ModuleSpec.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Core/ModuleSpec.h?rev=296941&r1=296940&r2=296941&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Core/ModuleSpec.h (original)
+++ lldb/trunk/include/lldb/Core/ModuleSpec.h Fri Mar  3 19:28:55 2017
@@ -12,7 +12,7 @@
 
 // Project includes
 #include "lldb/Core/ArchSpec.h"
-#include "lldb/Core/UUID.h"
+#include "lldb/Utility/UUID.h"
 #include "lldb/Host/FileSpec.h"
 #include "lldb/Target/PathMappingList.h"
 #include "lldb/Utility/Stream.h"

Removed: lldb/trunk/include/lldb/Core/UUID.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Core/UUID.h?rev=296940&view=auto
==============================================================================
--- lldb/trunk/include/lldb/Core/UUID.h (original)
+++ lldb/trunk/include/lldb/Core/UUID.h (removed)
@@ -1,96 +0,0 @@
-//===-- UUID.h --------------------------------------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef liblldb_UUID_h_
-#define liblldb_UUID_h_
-
-// C Includes
-// C++ Includes
-#include <string>
-
-// Other libraries and framework includes
-// Project includes
-#include "lldb/lldb-private.h"
-
-namespace lldb_private {
-
-class UUID {
-public:
-  // Most UUIDs are 16 bytes, but some Linux build-ids (SHA1) are 20.
-  typedef uint8_t ValueType[20];
-
-  //------------------------------------------------------------------
-  // Constructors and Destructors
-  //------------------------------------------------------------------
-  UUID();
-  UUID(const UUID &rhs);
-  UUID(const void *uuid_bytes, uint32_t num_uuid_bytes);
-
-  ~UUID();
-
-  const UUID &operator=(const UUID &rhs);
-
-  void Clear();
-
-  void Dump(Stream *s) const;
-
-  const void *GetBytes() const;
-
-  size_t GetByteSize();
-
-  bool IsValid() const;
-
-  bool SetBytes(const void *uuid_bytes, uint32_t num_uuid_bytes = 16);
-
-  std::string GetAsString(const char *separator = nullptr) const;
-
-  size_t SetFromCString(const char *c_str, uint32_t num_uuid_bytes = 16);
-
-  // Decode as many UUID bytes (up to 16) as possible from the C string "cstr"
-  // This is used for auto completion where a partial UUID might have been
-  // typed in. It
-  //------------------------------------------------------------------
-  /// Decode as many UUID bytes (up to 16) as possible from the C
-  /// string \a cstr.
-  ///
-  /// @param[in] cstr
-  ///     A NULL terminate C string that points at a UUID string value
-  ///     (no leading spaces). The string must contain only hex
-  ///     characters and optionally can contain the '-' sepearators.
-  ///
-  /// @param[in] uuid_bytes
-  ///     A buffer of bytes that will contain a full or patially
-  ///     decoded UUID.
-  ///
-  /// @return
-  ///     The original string, with all decoded bytes removed.
-  //------------------------------------------------------------------
-  static llvm::StringRef
-  DecodeUUIDBytesFromString(llvm::StringRef str, ValueType &uuid_bytes,
-                            uint32_t &bytes_decoded,
-                            uint32_t num_uuid_bytes = 16);
-
-protected:
-  //------------------------------------------------------------------
-  // Classes that inherit from UUID can see and modify these
-  //------------------------------------------------------------------
-  uint32_t m_num_uuid_bytes; // Should be 16 or 20
-  ValueType m_uuid;
-};
-
-bool operator==(const UUID &lhs, const UUID &rhs);
-bool operator!=(const UUID &lhs, const UUID &rhs);
-bool operator<(const UUID &lhs, const UUID &rhs);
-bool operator<=(const UUID &lhs, const UUID &rhs);
-bool operator>(const UUID &lhs, const UUID &rhs);
-bool operator>=(const UUID &lhs, const UUID &rhs);
-
-} // namespace lldb_private
-
-#endif // liblldb_UUID_h_

Modified: lldb/trunk/include/lldb/Interpreter/OptionValueUUID.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Interpreter/OptionValueUUID.h?rev=296941&r1=296940&r2=296941&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Interpreter/OptionValueUUID.h (original)
+++ lldb/trunk/include/lldb/Interpreter/OptionValueUUID.h Fri Mar  3 19:28:55 2017
@@ -14,7 +14,7 @@
 // C++ Includes
 // Other libraries and framework includes
 // Project includes
-#include "lldb/Core/UUID.h"
+#include "lldb/Utility/UUID.h"
 #include "lldb/Interpreter/OptionValue.h"
 
 namespace lldb_private {

Modified: lldb/trunk/include/lldb/Target/DynamicLoader.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Target/DynamicLoader.h?rev=296941&r1=296940&r2=296941&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Target/DynamicLoader.h (original)
+++ lldb/trunk/include/lldb/Target/DynamicLoader.h Fri Mar  3 19:28:55 2017
@@ -12,7 +12,7 @@
 
 // Project includes
 #include "lldb/Core/PluginInterface.h"
-#include "lldb/Core/UUID.h"
+#include "lldb/Utility/UUID.h"
 #include "lldb/Utility/Error.h"
 #include "lldb/lldb-private.h"
 

Added: lldb/trunk/include/lldb/Utility/UUID.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Utility/UUID.h?rev=296941&view=auto
==============================================================================
--- lldb/trunk/include/lldb/Utility/UUID.h (added)
+++ lldb/trunk/include/lldb/Utility/UUID.h Fri Mar  3 19:28:55 2017
@@ -0,0 +1,99 @@
+//===-- UUID.h --------------------------------------------------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLDB_UTILITY_UUID_H
+#define LLDB_UTILITY_UUID_H
+
+// C Includes
+// C++ Includes
+#include <stdint.h>
+#include <string>
+
+namespace llvm {
+  class StringRef;
+}
+
+namespace lldb_private {
+
+  class Stream;
+
+class UUID {
+public:
+  // Most UUIDs are 16 bytes, but some Linux build-ids (SHA1) are 20.
+  typedef uint8_t ValueType[20];
+
+  //------------------------------------------------------------------
+  // Constructors and Destructors
+  //------------------------------------------------------------------
+  UUID();
+  UUID(const UUID &rhs);
+  UUID(const void *uuid_bytes, uint32_t num_uuid_bytes);
+
+  ~UUID();
+
+  const UUID &operator=(const UUID &rhs);
+
+  void Clear();
+
+  void Dump(Stream *s) const;
+
+  const void *GetBytes() const;
+
+  size_t GetByteSize();
+
+  bool IsValid() const;
+
+  bool SetBytes(const void *uuid_bytes, uint32_t num_uuid_bytes = 16);
+
+  std::string GetAsString(const char *separator = nullptr) const;
+
+  size_t SetFromCString(const char *c_str, uint32_t num_uuid_bytes = 16);
+
+  // Decode as many UUID bytes (up to 16) as possible from the C string "cstr"
+  // This is used for auto completion where a partial UUID might have been
+  // typed in. It
+  //------------------------------------------------------------------
+  /// Decode as many UUID bytes (up to 16) as possible from the C
+  /// string \a cstr.
+  ///
+  /// @param[in] cstr
+  ///     A NULL terminate C string that points at a UUID string value
+  ///     (no leading spaces). The string must contain only hex
+  ///     characters and optionally can contain the '-' sepearators.
+  ///
+  /// @param[in] uuid_bytes
+  ///     A buffer of bytes that will contain a full or patially
+  ///     decoded UUID.
+  ///
+  /// @return
+  ///     The original string, with all decoded bytes removed.
+  //------------------------------------------------------------------
+  static llvm::StringRef
+  DecodeUUIDBytesFromString(llvm::StringRef str, ValueType &uuid_bytes,
+                            uint32_t &bytes_decoded,
+                            uint32_t num_uuid_bytes = 16);
+
+protected:
+  //------------------------------------------------------------------
+  // Classes that inherit from UUID can see and modify these
+  //------------------------------------------------------------------
+  uint32_t m_num_uuid_bytes; // Should be 16 or 20
+  ValueType m_uuid;
+};
+
+bool operator==(const UUID &lhs, const UUID &rhs);
+bool operator!=(const UUID &lhs, const UUID &rhs);
+bool operator<(const UUID &lhs, const UUID &rhs);
+bool operator<=(const UUID &lhs, const UUID &rhs);
+bool operator>(const UUID &lhs, const UUID &rhs);
+bool operator>=(const UUID &lhs, const UUID &rhs);
+
+} // namespace lldb_private
+
+#endif // LLDB_UTILITY_UUID_H

Modified: lldb/trunk/source/Core/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/CMakeLists.txt?rev=296941&r1=296940&r2=296941&view=diff
==============================================================================
--- lldb/trunk/source/Core/CMakeLists.txt (original)
+++ lldb/trunk/source/Core/CMakeLists.txt Fri Mar  3 19:28:55 2017
@@ -47,7 +47,6 @@ add_lldb_library(lldbCore
   Timer.cpp
   UserID.cpp
   UserSettingsController.cpp
-  UUID.cpp
   Value.cpp
   ValueObject.cpp
   ValueObjectCast.cpp

Modified: lldb/trunk/source/Core/DataExtractor.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/DataExtractor.cpp?rev=296941&r1=296940&r2=296941&view=diff
==============================================================================
--- lldb/trunk/source/Core/DataExtractor.cpp (original)
+++ lldb/trunk/source/Core/DataExtractor.cpp Fri Mar  3 19:28:55 2017
@@ -24,7 +24,7 @@
 #include "lldb/Core/DataBuffer.h"
 #include "lldb/Core/DataBufferHeap.h"
 #include "lldb/Core/DataExtractor.h"
-#include "lldb/Core/UUID.h"
+#include "lldb/Utility/UUID.h"
 #include "lldb/Utility/Endian.h"
 #include "lldb/Utility/Log.h"
 #include "lldb/Utility/Stream.h"

Removed: lldb/trunk/source/Core/UUID.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/UUID.cpp?rev=296940&view=auto
==============================================================================
--- lldb/trunk/source/Core/UUID.cpp (original)
+++ lldb/trunk/source/Core/UUID.cpp (removed)
@@ -1,224 +0,0 @@
-//===-- UUID.cpp ------------------------------------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "lldb/Core/UUID.h"
-// C Includes
-#include <ctype.h>
-#include <stdio.h>
-#include <string.h>
-
-// C++ Includes
-#include <string>
-
-// Other libraries and framework includes
-// Project includes
-#include "lldb/Utility/Stream.h"
-
-namespace lldb_private {
-
-UUID::UUID() : m_num_uuid_bytes(16) { ::memset(m_uuid, 0, sizeof(m_uuid)); }
-
-UUID::UUID(const UUID &rhs) {
-  m_num_uuid_bytes = rhs.m_num_uuid_bytes;
-  ::memcpy(m_uuid, rhs.m_uuid, sizeof(m_uuid));
-}
-
-UUID::UUID(const void *uuid_bytes, uint32_t num_uuid_bytes) {
-  SetBytes(uuid_bytes, num_uuid_bytes);
-}
-
-const UUID &UUID::operator=(const UUID &rhs) {
-  if (this != &rhs) {
-    m_num_uuid_bytes = rhs.m_num_uuid_bytes;
-    ::memcpy(m_uuid, rhs.m_uuid, sizeof(m_uuid));
-  }
-  return *this;
-}
-
-UUID::~UUID() {}
-
-void UUID::Clear() {
-  m_num_uuid_bytes = 16;
-  ::memset(m_uuid, 0, sizeof(m_uuid));
-}
-
-const void *UUID::GetBytes() const { return m_uuid; }
-
-std::string UUID::GetAsString(const char *separator) const {
-  std::string result;
-  char buf[256];
-  if (!separator)
-    separator = "-";
-  const uint8_t *u = (const uint8_t *)GetBytes();
-  if (sizeof(buf) >
-      (size_t)snprintf(buf, sizeof(buf), "%2.2X%2.2X%2.2X%2.2X%s%2.2X%2.2X%s%2."
-                                         "2X%2.2X%s%2.2X%2.2X%s%2.2X%2.2X%2.2X%"
-                                         "2.2X%2.2X%2.2X",
-                       u[0], u[1], u[2], u[3], separator, u[4], u[5], separator,
-                       u[6], u[7], separator, u[8], u[9], separator, u[10],
-                       u[11], u[12], u[13], u[14], u[15])) {
-    result.append(buf);
-    if (m_num_uuid_bytes == 20) {
-      if (sizeof(buf) > (size_t)snprintf(buf, sizeof(buf),
-                                         "%s%2.2X%2.2X%2.2X%2.2X", separator,
-                                         u[16], u[17], u[18], u[19]))
-        result.append(buf);
-    }
-  }
-  return result;
-}
-
-void UUID::Dump(Stream *s) const {
-  const uint8_t *u = (const uint8_t *)GetBytes();
-  s->Printf("%2.2X%2.2X%2.2X%2.2X-%2.2X%2.2X-%2.2X%2.2X-%2.2X%2.2X-%2.2X%2.2X%"
-            "2.2X%2.2X%2.2X%2.2X",
-            u[0], u[1], u[2], u[3], u[4], u[5], u[6], u[7], u[8], u[9], u[10],
-            u[11], u[12], u[13], u[14], u[15]);
-  if (m_num_uuid_bytes == 20) {
-    s->Printf("-%2.2X%2.2X%2.2X%2.2X", u[16], u[17], u[18], u[19]);
-  }
-}
-
-bool UUID::SetBytes(const void *uuid_bytes, uint32_t num_uuid_bytes) {
-  if (uuid_bytes) {
-    switch (num_uuid_bytes) {
-    case 20:
-      m_num_uuid_bytes = 20;
-      break;
-    case 16:
-      m_num_uuid_bytes = 16;
-      m_uuid[16] = m_uuid[17] = m_uuid[18] = m_uuid[19] = 0;
-      break;
-    default:
-      // Unsupported UUID byte size
-      m_num_uuid_bytes = 0;
-      break;
-    }
-
-    if (m_num_uuid_bytes > 0) {
-      ::memcpy(m_uuid, uuid_bytes, m_num_uuid_bytes);
-      return true;
-    }
-  }
-  ::memset(m_uuid, 0, sizeof(m_uuid));
-  return false;
-}
-
-size_t UUID::GetByteSize() { return m_num_uuid_bytes; }
-
-bool UUID::IsValid() const {
-  return m_uuid[0] || m_uuid[1] || m_uuid[2] || m_uuid[3] || m_uuid[4] ||
-         m_uuid[5] || m_uuid[6] || m_uuid[7] || m_uuid[8] || m_uuid[9] ||
-         m_uuid[10] || m_uuid[11] || m_uuid[12] || m_uuid[13] || m_uuid[14] ||
-         m_uuid[15] || m_uuid[16] || m_uuid[17] || m_uuid[18] || m_uuid[19];
-}
-
-static inline int xdigit_to_int(char ch) {
-  ch = tolower(ch);
-  if (ch >= 'a' && ch <= 'f')
-    return 10 + ch - 'a';
-  return ch - '0';
-}
-
-llvm::StringRef UUID::DecodeUUIDBytesFromString(llvm::StringRef p,
-                                                ValueType &uuid_bytes,
-                                                uint32_t &bytes_decoded,
-                                                uint32_t num_uuid_bytes) {
-  ::memset(uuid_bytes, 0, sizeof(uuid_bytes));
-  size_t uuid_byte_idx = 0;
-  while (!p.empty()) {
-    if (isxdigit(p[0]) && isxdigit(p[1])) {
-      int hi_nibble = xdigit_to_int(p[0]);
-      int lo_nibble = xdigit_to_int(p[1]);
-      // Translate the two hex nibble characters into a byte
-      uuid_bytes[uuid_byte_idx] = (hi_nibble << 4) + lo_nibble;
-
-      // Skip both hex digits
-      p = p.drop_front(2);
-
-      // Increment the byte that we are decoding within the UUID value
-      // and break out if we are done
-      if (++uuid_byte_idx == num_uuid_bytes)
-        break;
-    } else if (p.front() == '-') {
-      // Skip dashes
-      p = p.drop_front();
-    } else {
-      // UUID values can only consist of hex characters and '-' chars
-      break;
-    }
-  }
-
-  // Clear trailing bytes to 0.
-  for (uint32_t i = uuid_byte_idx; i < sizeof(ValueType); i++)
-    uuid_bytes[i] = 0;
-  bytes_decoded = uuid_byte_idx;
-  return p;
-}
-size_t UUID::SetFromCString(const char *cstr, uint32_t num_uuid_bytes) {
-  if (cstr == NULL)
-    return 0;
-
-  llvm::StringRef orig(cstr);
-  llvm::StringRef p = orig;
-
-  // Skip leading whitespace characters
-  p = p.ltrim();
-
-  uint32_t bytes_decoded = 0;
-  llvm::StringRef rest =
-      UUID::DecodeUUIDBytesFromString(p, m_uuid, bytes_decoded, num_uuid_bytes);
-
-  // If we successfully decoded a UUID, return the amount of characters that
-  // were consumed
-  if (bytes_decoded == num_uuid_bytes) {
-    m_num_uuid_bytes = num_uuid_bytes;
-    return orig.size() - rest.size();
-  }
-
-  // Else return zero to indicate we were not able to parse a UUID value
-  return 0;
-}
-}
-
-bool lldb_private::operator==(const lldb_private::UUID &lhs,
-                              const lldb_private::UUID &rhs) {
-  return ::memcmp(lhs.GetBytes(), rhs.GetBytes(),
-                  sizeof(lldb_private::UUID::ValueType)) == 0;
-}
-
-bool lldb_private::operator!=(const lldb_private::UUID &lhs,
-                              const lldb_private::UUID &rhs) {
-  return ::memcmp(lhs.GetBytes(), rhs.GetBytes(),
-                  sizeof(lldb_private::UUID::ValueType)) != 0;
-}
-
-bool lldb_private::operator<(const lldb_private::UUID &lhs,
-                             const lldb_private::UUID &rhs) {
-  return ::memcmp(lhs.GetBytes(), rhs.GetBytes(),
-                  sizeof(lldb_private::UUID::ValueType)) < 0;
-}
-
-bool lldb_private::operator<=(const lldb_private::UUID &lhs,
-                              const lldb_private::UUID &rhs) {
-  return ::memcmp(lhs.GetBytes(), rhs.GetBytes(),
-                  sizeof(lldb_private::UUID::ValueType)) <= 0;
-}
-
-bool lldb_private::operator>(const lldb_private::UUID &lhs,
-                             const lldb_private::UUID &rhs) {
-  return ::memcmp(lhs.GetBytes(), rhs.GetBytes(),
-                  sizeof(lldb_private::UUID::ValueType)) > 0;
-}
-
-bool lldb_private::operator>=(const lldb_private::UUID &lhs,
-                              const lldb_private::UUID &rhs) {
-  return ::memcmp(lhs.GetBytes(), rhs.GetBytes(),
-                  sizeof(lldb_private::UUID::ValueType)) >= 0;
-}

Modified: lldb/trunk/source/Host/common/Symbols.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/common/Symbols.cpp?rev=296941&r1=296940&r2=296941&view=diff
==============================================================================
--- lldb/trunk/source/Host/common/Symbols.cpp (original)
+++ lldb/trunk/source/Host/common/Symbols.cpp Fri Mar  3 19:28:55 2017
@@ -14,7 +14,7 @@
 #include "lldb/Core/Module.h"
 #include "lldb/Core/ModuleSpec.h"
 #include "lldb/Core/Timer.h"
-#include "lldb/Core/UUID.h"
+#include "lldb/Utility/UUID.h"
 #include "lldb/Symbol/ObjectFile.h"
 #include "lldb/Target/Target.h"
 #include "lldb/Utility/Log.h"

Modified: lldb/trunk/source/Host/macosx/Symbols.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/macosx/Symbols.cpp?rev=296941&r1=296940&r2=296941&view=diff
==============================================================================
--- lldb/trunk/source/Host/macosx/Symbols.cpp (original)
+++ lldb/trunk/source/Host/macosx/Symbols.cpp Fri Mar  3 19:28:55 2017
@@ -29,7 +29,7 @@
 #include "lldb/Core/Module.h"
 #include "lldb/Core/ModuleSpec.h"
 #include "lldb/Core/Timer.h"
-#include "lldb/Core/UUID.h"
+#include "lldb/Utility/UUID.h"
 #include "lldb/Host/Host.h"
 #include "lldb/Symbol/ObjectFile.h"
 #include "lldb/Utility/CleanUp.h"

Modified: lldb/trunk/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.h?rev=296941&r1=296940&r2=296941&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.h (original)
+++ lldb/trunk/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.h Fri Mar  3 19:28:55 2017
@@ -18,7 +18,7 @@
 
 // Other libraries and framework includes
 // Project includes
-#include "lldb/Core/UUID.h"
+#include "lldb/Utility/UUID.h"
 #include "lldb/Host/FileSpec.h"
 #include "lldb/Target/DynamicLoader.h"
 #include "lldb/Target/Process.h"

Modified: lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.h?rev=296941&r1=296940&r2=296941&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.h (original)
+++ lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.h Fri Mar  3 19:28:55 2017
@@ -19,7 +19,7 @@
 // Other libraries and framework includes
 // Project includes
 #include "lldb/Core/StructuredData.h"
-#include "lldb/Core/UUID.h"
+#include "lldb/Utility/UUID.h"
 #include "lldb/Host/FileSpec.h"
 #include "lldb/Target/DynamicLoader.h"
 #include "lldb/Target/Process.h"

Modified: lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.h?rev=296941&r1=296940&r2=296941&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.h (original)
+++ lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.h Fri Mar  3 19:28:55 2017
@@ -26,7 +26,7 @@
 // Other libraries and framework includes
 // Project includes
 #include "lldb/Core/StructuredData.h"
-#include "lldb/Core/UUID.h"
+#include "lldb/Utility/UUID.h"
 #include "lldb/Host/FileSpec.h"
 #include "lldb/Target/DynamicLoader.h"
 #include "lldb/Target/Process.h"

Modified: lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.h?rev=296941&r1=296940&r2=296941&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.h (original)
+++ lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.h Fri Mar  3 19:28:55 2017
@@ -29,7 +29,7 @@
 // Other libraries and framework includes
 // Project includes
 #include "lldb/Core/StructuredData.h"
-#include "lldb/Core/UUID.h"
+#include "lldb/Utility/UUID.h"
 #include "lldb/Host/FileSpec.h"
 #include "lldb/Target/DynamicLoader.h"
 #include "lldb/Target/Process.h"

Modified: lldb/trunk/source/Plugins/DynamicLoader/Static/DynamicLoaderStatic.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/DynamicLoader/Static/DynamicLoaderStatic.h?rev=296941&r1=296940&r2=296941&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/DynamicLoader/Static/DynamicLoaderStatic.h (original)
+++ lldb/trunk/source/Plugins/DynamicLoader/Static/DynamicLoaderStatic.h Fri Mar  3 19:28:55 2017
@@ -14,7 +14,7 @@
 // C++ Includes
 // Other libraries and framework includes
 // Project includes
-#include "lldb/Core/UUID.h"
+#include "lldb/Utility/UUID.h"
 #include "lldb/Host/FileSpec.h"
 #include "lldb/Target/DynamicLoader.h"
 #include "lldb/Target/Process.h"

Modified: lldb/trunk/source/Plugins/ObjectFile/ELF/ObjectFileELF.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ObjectFile/ELF/ObjectFileELF.h?rev=296941&r1=296940&r2=296941&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/ObjectFile/ELF/ObjectFileELF.h (original)
+++ lldb/trunk/source/Plugins/ObjectFile/ELF/ObjectFileELF.h Fri Mar  3 19:28:55 2017
@@ -20,7 +20,7 @@
 // Other libraries and framework includes
 // Project includes
 #include "lldb/Core/ArchSpec.h"
-#include "lldb/Core/UUID.h"
+#include "lldb/Utility/UUID.h"
 #include "lldb/Host/FileSpec.h"
 #include "lldb/Symbol/ObjectFile.h"
 #include "lldb/lldb-private.h"

Modified: lldb/trunk/source/Plugins/ObjectFile/JIT/ObjectFileJIT.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ObjectFile/JIT/ObjectFileJIT.cpp?rev=296941&r1=296940&r2=296941&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/ObjectFile/JIT/ObjectFileJIT.cpp (original)
+++ lldb/trunk/source/Plugins/ObjectFile/JIT/ObjectFileJIT.cpp Fri Mar  3 19:28:55 2017
@@ -23,7 +23,7 @@
 #include "lldb/Core/Section.h"
 #include "lldb/Core/StreamFile.h"
 #include "lldb/Core/Timer.h"
-#include "lldb/Core/UUID.h"
+#include "lldb/Utility/UUID.h"
 #include "lldb/Host/FileSpec.h"
 #include "lldb/Host/Host.h"
 #include "lldb/Symbol/ObjectFile.h"

Modified: lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp?rev=296941&r1=296940&r2=296941&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp (original)
+++ lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp Fri Mar  3 19:28:55 2017
@@ -28,7 +28,7 @@
 #include "lldb/Core/Section.h"
 #include "lldb/Core/StreamFile.h"
 #include "lldb/Core/Timer.h"
-#include "lldb/Core/UUID.h"
+#include "lldb/Utility/UUID.h"
 #include "lldb/Host/FileSpec.h"
 #include "lldb/Host/Host.h"
 #include "lldb/Symbol/DWARFCallFrameInfo.h"

Modified: lldb/trunk/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp?rev=296941&r1=296940&r2=296941&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp (original)
+++ lldb/trunk/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp Fri Mar  3 19:28:55 2017
@@ -22,7 +22,7 @@
 #include "lldb/Core/Section.h"
 #include "lldb/Core/StreamFile.h"
 #include "lldb/Core/Timer.h"
-#include "lldb/Core/UUID.h"
+#include "lldb/Utility/UUID.h"
 #include "lldb/Host/FileSpec.h"
 #include "lldb/Symbol/ObjectFile.h"
 #include "lldb/Target/Process.h"

Modified: lldb/trunk/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp?rev=296941&r1=296940&r2=296941&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp (original)
+++ lldb/trunk/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp Fri Mar  3 19:28:55 2017
@@ -21,7 +21,7 @@
 #include "lldb/Core/DataExtractor.h"
 #include "lldb/Core/DumpDataExtractor.h"
 #include "lldb/Core/State.h"
-#include "lldb/Core/UUID.h"
+#include "lldb/Utility/UUID.h"
 #include "lldb/Host/FileSpec.h"
 #include "lldb/Host/Host.h"
 #include "lldb/Target/Process.h"

Modified: lldb/trunk/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp?rev=296941&r1=296940&r2=296941&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp (original)
+++ lldb/trunk/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp Fri Mar  3 19:28:55 2017
@@ -20,7 +20,7 @@
 #include "lldb/Core/ModuleSpec.h"
 #include "lldb/Core/PluginManager.h"
 #include "lldb/Core/State.h"
-#include "lldb/Core/UUID.h"
+#include "lldb/Utility/UUID.h"
 #include "lldb/Host/ConnectionFileDescriptor.h"
 #include "lldb/Host/Host.h"
 #include "lldb/Host/Symbols.h"

Modified: lldb/trunk/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.h?rev=296941&r1=296940&r2=296941&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.h (original)
+++ lldb/trunk/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.h Fri Mar  3 19:28:55 2017
@@ -20,7 +20,7 @@
 // Project includes
 #include "lldb/Core/ModuleList.h"
 #include "lldb/Core/StructuredData.h"
-#include "lldb/Core/UUID.h"
+#include "lldb/Utility/UUID.h"
 #include "lldb/Host/FileSpec.h"
 #include "lldb/Target/Process.h"
 #include "lldb/Target/QueueItem.h"

Modified: lldb/trunk/source/Utility/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/CMakeLists.txt?rev=296941&r1=296940&r2=296941&view=diff
==============================================================================
--- lldb/trunk/source/Utility/CMakeLists.txt (original)
+++ lldb/trunk/source/Utility/CMakeLists.txt Fri Mar  3 19:28:55 2017
@@ -17,6 +17,7 @@ add_lldb_library(lldbUtility
   StringLexer.cpp
   TaskPool.cpp
   UriParser.cpp
+  UUID.cpp
   VASprintf.cpp
 
   LINK_LIBS

Added: lldb/trunk/source/Utility/UUID.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/UUID.cpp?rev=296941&view=auto
==============================================================================
--- lldb/trunk/source/Utility/UUID.cpp (added)
+++ lldb/trunk/source/Utility/UUID.cpp Fri Mar  3 19:28:55 2017
@@ -0,0 +1,227 @@
+//===-- UUID.cpp ------------------------------------------------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "lldb/Utility/UUID.h"
+
+// C Includes
+#include <ctype.h>
+#include <stdio.h>
+#include <string.h>
+
+// C++ Includes
+#include <string>
+
+// Other libraries and framework includes
+// Project includes
+#include "lldb/Utility/Stream.h"
+
+#include "llvm/ADT/StringRef.h"
+
+namespace lldb_private {
+
+UUID::UUID() : m_num_uuid_bytes(16) { ::memset(m_uuid, 0, sizeof(m_uuid)); }
+
+UUID::UUID(const UUID &rhs) {
+  m_num_uuid_bytes = rhs.m_num_uuid_bytes;
+  ::memcpy(m_uuid, rhs.m_uuid, sizeof(m_uuid));
+}
+
+UUID::UUID(const void *uuid_bytes, uint32_t num_uuid_bytes) {
+  SetBytes(uuid_bytes, num_uuid_bytes);
+}
+
+const UUID &UUID::operator=(const UUID &rhs) {
+  if (this != &rhs) {
+    m_num_uuid_bytes = rhs.m_num_uuid_bytes;
+    ::memcpy(m_uuid, rhs.m_uuid, sizeof(m_uuid));
+  }
+  return *this;
+}
+
+UUID::~UUID() {}
+
+void UUID::Clear() {
+  m_num_uuid_bytes = 16;
+  ::memset(m_uuid, 0, sizeof(m_uuid));
+}
+
+const void *UUID::GetBytes() const { return m_uuid; }
+
+std::string UUID::GetAsString(const char *separator) const {
+  std::string result;
+  char buf[256];
+  if (!separator)
+    separator = "-";
+  const uint8_t *u = (const uint8_t *)GetBytes();
+  if (sizeof(buf) >
+      (size_t)snprintf(buf, sizeof(buf), "%2.2X%2.2X%2.2X%2.2X%s%2.2X%2.2X%s%2."
+                                         "2X%2.2X%s%2.2X%2.2X%s%2.2X%2.2X%2.2X%"
+                                         "2.2X%2.2X%2.2X",
+                       u[0], u[1], u[2], u[3], separator, u[4], u[5], separator,
+                       u[6], u[7], separator, u[8], u[9], separator, u[10],
+                       u[11], u[12], u[13], u[14], u[15])) {
+    result.append(buf);
+    if (m_num_uuid_bytes == 20) {
+      if (sizeof(buf) > (size_t)snprintf(buf, sizeof(buf),
+                                         "%s%2.2X%2.2X%2.2X%2.2X", separator,
+                                         u[16], u[17], u[18], u[19]))
+        result.append(buf);
+    }
+  }
+  return result;
+}
+
+void UUID::Dump(Stream *s) const {
+  const uint8_t *u = (const uint8_t *)GetBytes();
+  s->Printf("%2.2X%2.2X%2.2X%2.2X-%2.2X%2.2X-%2.2X%2.2X-%2.2X%2.2X-%2.2X%2.2X%"
+            "2.2X%2.2X%2.2X%2.2X",
+            u[0], u[1], u[2], u[3], u[4], u[5], u[6], u[7], u[8], u[9], u[10],
+            u[11], u[12], u[13], u[14], u[15]);
+  if (m_num_uuid_bytes == 20) {
+    s->Printf("-%2.2X%2.2X%2.2X%2.2X", u[16], u[17], u[18], u[19]);
+  }
+}
+
+bool UUID::SetBytes(const void *uuid_bytes, uint32_t num_uuid_bytes) {
+  if (uuid_bytes) {
+    switch (num_uuid_bytes) {
+    case 20:
+      m_num_uuid_bytes = 20;
+      break;
+    case 16:
+      m_num_uuid_bytes = 16;
+      m_uuid[16] = m_uuid[17] = m_uuid[18] = m_uuid[19] = 0;
+      break;
+    default:
+      // Unsupported UUID byte size
+      m_num_uuid_bytes = 0;
+      break;
+    }
+
+    if (m_num_uuid_bytes > 0) {
+      ::memcpy(m_uuid, uuid_bytes, m_num_uuid_bytes);
+      return true;
+    }
+  }
+  ::memset(m_uuid, 0, sizeof(m_uuid));
+  return false;
+}
+
+size_t UUID::GetByteSize() { return m_num_uuid_bytes; }
+
+bool UUID::IsValid() const {
+  return m_uuid[0] || m_uuid[1] || m_uuid[2] || m_uuid[3] || m_uuid[4] ||
+         m_uuid[5] || m_uuid[6] || m_uuid[7] || m_uuid[8] || m_uuid[9] ||
+         m_uuid[10] || m_uuid[11] || m_uuid[12] || m_uuid[13] || m_uuid[14] ||
+         m_uuid[15] || m_uuid[16] || m_uuid[17] || m_uuid[18] || m_uuid[19];
+}
+
+static inline int xdigit_to_int(char ch) {
+  ch = tolower(ch);
+  if (ch >= 'a' && ch <= 'f')
+    return 10 + ch - 'a';
+  return ch - '0';
+}
+
+llvm::StringRef UUID::DecodeUUIDBytesFromString(llvm::StringRef p,
+                                                ValueType &uuid_bytes,
+                                                uint32_t &bytes_decoded,
+                                                uint32_t num_uuid_bytes) {
+  ::memset(uuid_bytes, 0, sizeof(uuid_bytes));
+  size_t uuid_byte_idx = 0;
+  while (!p.empty()) {
+    if (isxdigit(p[0]) && isxdigit(p[1])) {
+      int hi_nibble = xdigit_to_int(p[0]);
+      int lo_nibble = xdigit_to_int(p[1]);
+      // Translate the two hex nibble characters into a byte
+      uuid_bytes[uuid_byte_idx] = (hi_nibble << 4) + lo_nibble;
+
+      // Skip both hex digits
+      p = p.drop_front(2);
+
+      // Increment the byte that we are decoding within the UUID value
+      // and break out if we are done
+      if (++uuid_byte_idx == num_uuid_bytes)
+        break;
+    } else if (p.front() == '-') {
+      // Skip dashes
+      p = p.drop_front();
+    } else {
+      // UUID values can only consist of hex characters and '-' chars
+      break;
+    }
+  }
+
+  // Clear trailing bytes to 0.
+  for (uint32_t i = uuid_byte_idx; i < sizeof(ValueType); i++)
+    uuid_bytes[i] = 0;
+  bytes_decoded = uuid_byte_idx;
+  return p;
+}
+size_t UUID::SetFromCString(const char *cstr, uint32_t num_uuid_bytes) {
+  if (cstr == NULL)
+    return 0;
+
+  llvm::StringRef orig(cstr);
+  llvm::StringRef p = orig;
+
+  // Skip leading whitespace characters
+  p = p.ltrim();
+
+  uint32_t bytes_decoded = 0;
+  llvm::StringRef rest =
+      UUID::DecodeUUIDBytesFromString(p, m_uuid, bytes_decoded, num_uuid_bytes);
+
+  // If we successfully decoded a UUID, return the amount of characters that
+  // were consumed
+  if (bytes_decoded == num_uuid_bytes) {
+    m_num_uuid_bytes = num_uuid_bytes;
+    return orig.size() - rest.size();
+  }
+
+  // Else return zero to indicate we were not able to parse a UUID value
+  return 0;
+}
+}
+
+bool lldb_private::operator==(const lldb_private::UUID &lhs,
+                              const lldb_private::UUID &rhs) {
+  return ::memcmp(lhs.GetBytes(), rhs.GetBytes(),
+                  sizeof(lldb_private::UUID::ValueType)) == 0;
+}
+
+bool lldb_private::operator!=(const lldb_private::UUID &lhs,
+                              const lldb_private::UUID &rhs) {
+  return ::memcmp(lhs.GetBytes(), rhs.GetBytes(),
+                  sizeof(lldb_private::UUID::ValueType)) != 0;
+}
+
+bool lldb_private::operator<(const lldb_private::UUID &lhs,
+                             const lldb_private::UUID &rhs) {
+  return ::memcmp(lhs.GetBytes(), rhs.GetBytes(),
+                  sizeof(lldb_private::UUID::ValueType)) < 0;
+}
+
+bool lldb_private::operator<=(const lldb_private::UUID &lhs,
+                              const lldb_private::UUID &rhs) {
+  return ::memcmp(lhs.GetBytes(), rhs.GetBytes(),
+                  sizeof(lldb_private::UUID::ValueType)) <= 0;
+}
+
+bool lldb_private::operator>(const lldb_private::UUID &lhs,
+                             const lldb_private::UUID &rhs) {
+  return ::memcmp(lhs.GetBytes(), rhs.GetBytes(),
+                  sizeof(lldb_private::UUID::ValueType)) > 0;
+}
+
+bool lldb_private::operator>=(const lldb_private::UUID &lhs,
+                              const lldb_private::UUID &rhs) {
+  return ::memcmp(lhs.GetBytes(), rhs.GetBytes(),
+                  sizeof(lldb_private::UUID::ValueType)) >= 0;
+}




More information about the lldb-commits mailing list