[Lldb-commits] [lldb] r181078 - Remove the UUID::GetAsCString() method which required a buffer to save the
Jason Molenda
jmolenda at apple.com
Fri May 3 16:56:12 PDT 2013
Author: jmolenda
Date: Fri May 3 18:56:12 2013
New Revision: 181078
URL: http://llvm.org/viewvc/llvm-project?rev=181078&view=rev
Log:
Remove the UUID::GetAsCString() method which required a buffer to save the
UUID string in; added UUID::GetAsString() which returns the uuid string in
a std::string. Updated callers to use the new method.
Modified:
lldb/trunk/include/lldb/Core/UUID.h
lldb/trunk/source/API/SBModule.cpp
lldb/trunk/source/Commands/CommandObjectTarget.cpp
lldb/trunk/source/Core/ModuleList.cpp
lldb/trunk/source/Core/UUID.cpp
lldb/trunk/source/Host/macosx/Symbols.cpp
lldb/trunk/source/Interpreter/OptionValueUUID.cpp
lldb/trunk/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
lldb/trunk/source/Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.cpp
Modified: lldb/trunk/include/lldb/Core/UUID.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Core/UUID.h?rev=181078&r1=181077&r2=181078&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Core/UUID.h (original)
+++ lldb/trunk/include/lldb/Core/UUID.h Fri May 3 18:56:12 2013
@@ -54,8 +54,8 @@ public:
void
SetBytes (const void *uuid_bytes);
- char *
- GetAsCString (char *dst, size_t dst_len) const;
+ std::string
+ GetAsString () const;
size_t
SetFromCString (const char *c_str);
Modified: lldb/trunk/source/API/SBModule.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/API/SBModule.cpp?rev=181078&r1=181077&r2=181078&view=diff
==============================================================================
--- lldb/trunk/source/API/SBModule.cpp (original)
+++ lldb/trunk/source/API/SBModule.cpp Fri May 3 18:56:12 2013
@@ -180,15 +180,22 @@ SBModule::GetUUIDString () const
{
Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
- static char uuid_string[80];
- const char * uuid_c_string = NULL;
+ static char uuid_string_buffer[80];
+ const char *uuid_c_string = NULL;
+ std::string uuid_string;
ModuleSP module_sp (GetSP ());
if (module_sp)
- uuid_c_string = (const char *)module_sp->GetUUID().GetAsCString(uuid_string, sizeof(uuid_string));
+ uuid_string = module_sp->GetUUID().GetAsString();
+
+ if (!uuid_string.empty())
+ {
+ strncpy (uuid_string_buffer, uuid_string.c_str(), sizeof (uuid_string_buffer));
+ uuid_c_string = uuid_string_buffer;
+ }
if (log)
{
- if (uuid_c_string)
+ if (!uuid_string.empty())
{
StreamString s;
module_sp->GetUUID().Dump (&s);
Modified: lldb/trunk/source/Commands/CommandObjectTarget.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Commands/CommandObjectTarget.cpp?rev=181078&r1=181077&r2=181078&view=diff
==============================================================================
--- lldb/trunk/source/Commands/CommandObjectTarget.cpp (original)
+++ lldb/trunk/source/Commands/CommandObjectTarget.cpp Fri May 3 18:56:12 2013
@@ -2928,7 +2928,7 @@ protected:
}
else
{
- char uuid_cstr[64];
+ std::string uuid_str;
if (module_spec.GetFileSpec())
module_spec.GetFileSpec().GetPath (path, sizeof(path));
@@ -2936,16 +2936,14 @@ protected:
path[0] = '\0';
if (module_spec.GetUUIDPtr())
- module_spec.GetUUID().GetAsCString(uuid_cstr, sizeof(uuid_cstr));
- else
- uuid_cstr[0] = '\0';
+ uuid_str = module_spec.GetUUID().GetAsString();
if (num_matches > 1)
{
result.AppendErrorWithFormat ("multiple modules match%s%s%s%s:\n",
path[0] ? " file=" : "",
path,
- uuid_cstr[0] ? " uuid=" : "",
- uuid_cstr);
+ !uuid_str.empty() ? " uuid=" : "",
+ uuid_str.c_str());
for (size_t i=0; i<num_matches; ++i)
{
if (matching_modules.GetModulePointerAtIndex(i)->GetFileSpec().GetPath (path, sizeof(path)))
@@ -2957,8 +2955,8 @@ protected:
result.AppendErrorWithFormat ("no modules were found that match%s%s%s%s.\n",
path[0] ? " file=" : "",
path,
- uuid_cstr[0] ? " uuid=" : "",
- uuid_cstr);
+ !uuid_str.empty() ? " uuid=" : "",
+ uuid_str.c_str());
}
result.SetStatus (eReturnStatusFailed);
}
Modified: lldb/trunk/source/Core/ModuleList.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/ModuleList.cpp?rev=181078&r1=181077&r2=181078&view=diff
==============================================================================
--- lldb/trunk/source/Core/ModuleList.cpp (original)
+++ lldb/trunk/source/Core/ModuleList.cpp Fri May 3 18:56:12 2013
@@ -651,17 +651,15 @@ ModuleList::LogUUIDAndPaths (Log *log, c
if (log)
{
Mutex::Locker locker(m_modules_mutex);
- char uuid_cstr[256];
collection::const_iterator pos, begin = m_modules.begin(), end = m_modules.end();
for (pos = begin; pos != end; ++pos)
{
Module *module = pos->get();
- module->GetUUID().GetAsCString (uuid_cstr, sizeof(uuid_cstr));
const FileSpec &module_file_spec = module->GetFileSpec();
log->Printf ("%s[%u] %s (%s) \"%s\"",
prefix_cstr ? prefix_cstr : "",
(uint32_t)std::distance (begin, pos),
- uuid_cstr,
+ module->GetUUID().GetAsString().c_str(),
module->GetArchitecture().GetArchitectureName(),
module_file_spec.GetPath().c_str());
}
@@ -806,7 +804,6 @@ ModuleList::GetSharedModule
ModuleList &shared_module_list = GetSharedModuleList ();
Mutex::Locker locker(shared_module_list.m_modules_mutex);
char path[PATH_MAX];
- char uuid_cstr[64];
Error error;
@@ -906,16 +903,14 @@ ModuleList::GetSharedModule
module_file_spec.GetPath(path, sizeof(path));
if (file_spec.Exists())
{
+ std::string uuid_str;
if (uuid_ptr && uuid_ptr->IsValid())
- uuid_ptr->GetAsCString(uuid_cstr, sizeof (uuid_cstr));
- else
- uuid_cstr[0] = '\0';
-
+ uuid_str = uuid_ptr->GetAsString();
if (arch.IsValid())
{
- if (uuid_cstr[0])
- error.SetErrorStringWithFormat("'%s' does not contain the %s architecture and UUID %s", path, arch.GetArchitectureName(), uuid_cstr);
+ if (!uuid_str.empty())
+ error.SetErrorStringWithFormat("'%s' does not contain the %s architecture and UUID %s", path, arch.GetArchitectureName(), uuid_str.c_str());
else
error.SetErrorStringWithFormat("'%s' does not contain the %s architecture.", path, arch.GetArchitectureName());
}
@@ -985,13 +980,12 @@ ModuleList::GetSharedModule
}
else
{
+ std::string uuid_str;
if (uuid_ptr && uuid_ptr->IsValid())
- uuid_ptr->GetAsCString(uuid_cstr, sizeof (uuid_cstr));
- else
- uuid_cstr[0] = '\0';
+ uuid_str = uuid_ptr->GetAsString();
- if (uuid_cstr[0])
- error.SetErrorStringWithFormat("cannot locate a module for UUID '%s'", uuid_cstr);
+ if (!uuid_str.empty())
+ error.SetErrorStringWithFormat("cannot locate a module for UUID '%s'", uuid_str.c_str());
else
error.SetErrorStringWithFormat("cannot locate a module");
}
Modified: lldb/trunk/source/Core/UUID.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/UUID.cpp?rev=181078&r1=181077&r2=181078&view=diff
==============================================================================
--- lldb/trunk/source/Core/UUID.cpp (original)
+++ lldb/trunk/source/Core/UUID.cpp Fri May 3 18:56:12 2013
@@ -14,6 +14,8 @@
#include <ctype.h>
// C++ Includes
+#include <string>
+
// Other libraries and framework includes
// Project includes
#include "lldb/Core/Stream.h"
@@ -62,16 +64,20 @@ UUID::GetBytes() const
return m_uuid;
}
-char *
-UUID::GetAsCString (char *dst, size_t dst_len) const
+std::string
+UUID::GetAsString () const
{
+ std::string result;
+ char buf[64];
const uint8_t *u = (const uint8_t *)GetBytes();
- if (dst_len > snprintf (dst,
- dst_len,
+ if (sizeof (buf) > snprintf (buf,
+ sizeof (buf),
"%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]))
- return dst;
- return NULL;
+ {
+ result.append (buf);
+ }
+ return result;
}
void
Modified: lldb/trunk/source/Host/macosx/Symbols.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/macosx/Symbols.cpp?rev=181078&r1=181077&r2=181078&view=diff
==============================================================================
--- lldb/trunk/source/Host/macosx/Symbols.cpp (original)
+++ lldb/trunk/source/Host/macosx/Symbols.cpp Fri May 3 18:56:12 2013
@@ -364,9 +364,7 @@ LocateMacOSXFilesUsingDebugSymbols
CFDictionaryRef uuid_dict = NULL;
if (dict.get())
{
- char uuid_cstr_buf[64];
- const char *uuid_cstr = uuid->GetAsCString (uuid_cstr_buf, sizeof(uuid_cstr_buf));
- CFCString uuid_cfstr (uuid_cstr);
+ CFCString uuid_cfstr (uuid->GetAsString().c_str());
uuid_dict = static_cast<CFDictionaryRef>(::CFDictionaryGetValue (dict.get(), uuid_cfstr.get()));
if (uuid_dict)
{
@@ -719,21 +717,19 @@ Symbols::DownloadObjectAndSymbolFile (Mo
}
if (g_dsym_for_uuid_exe_exists)
{
- char uuid_cstr_buffer[64];
+ std::string uuid_str;
char file_path[PATH_MAX];
- uuid_cstr_buffer[0] = '\0';
file_path[0] = '\0';
- const char *uuid_cstr = NULL;
if (uuid_ptr)
- uuid_cstr = uuid_ptr->GetAsCString(uuid_cstr_buffer, sizeof(uuid_cstr_buffer));
+ uuid_str = uuid_ptr->GetAsString();
if (file_spec_ptr)
file_spec_ptr->GetPath(file_path, sizeof(file_path));
StreamString command;
- if (uuid_cstr)
- command.Printf("%s --ignoreNegativeCache --copyExecutable %s", g_dsym_for_uuid_exe_path, uuid_cstr);
+ if (!uuid_str.empty())
+ command.Printf("%s --ignoreNegativeCache --copyExecutable %s", g_dsym_for_uuid_exe_path, uuid_str.c_str());
else if (file_path && file_path[0])
command.Printf("%s --ignoreNegativeCache --copyExecutable %s", g_dsym_for_uuid_exe_path, file_path);
@@ -760,9 +756,9 @@ Symbols::DownloadObjectAndSymbolFile (Mo
if (plist.get() && CFGetTypeID (plist.get()) == CFDictionaryGetTypeID ())
{
- if (uuid_cstr)
+ if (!uuid_str.empty())
{
- CFCString uuid_cfstr(uuid_cstr);
+ CFCString uuid_cfstr(uuid_str.c_str());
CFDictionaryRef uuid_dict = (CFDictionaryRef)CFDictionaryGetValue (plist.get(), uuid_cfstr.get());
success = GetModuleSpecInfoFromUUIDDictionary (uuid_dict, module_spec);
}
Modified: lldb/trunk/source/Interpreter/OptionValueUUID.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Interpreter/OptionValueUUID.cpp?rev=181078&r1=181077&r2=181078&view=diff
==============================================================================
--- lldb/trunk/source/Interpreter/OptionValueUUID.cpp (original)
+++ lldb/trunk/source/Interpreter/OptionValueUUID.cpp Fri May 3 18:56:12 2013
@@ -91,7 +91,6 @@ OptionValueUUID::AutoComplete (CommandIn
const size_t num_modules = target->GetImages().GetSize();
if (num_modules > 0)
{
- char uuid_cstr[64];
UUID::ValueType uuid_bytes;
const size_t num_bytes_decoded = UUID::DecodeUUIDBytesFromCString(s, uuid_bytes, NULL);
for (size_t i=0; i<num_modules; ++i)
@@ -109,8 +108,10 @@ OptionValueUUID::AutoComplete (CommandIn
add_uuid = ::memcmp(module_uuid.GetBytes(), uuid_bytes, num_bytes_decoded) == 0;
if (add_uuid)
{
- if (module_uuid.GetAsCString(uuid_cstr, sizeof(uuid_cstr)))
- matches.AppendString(uuid_cstr);
+ std::string uuid_str;
+ uuid_str = module_uuid.GetAsString();
+ if (!uuid_str.empty())
+ matches.AppendString(uuid_str.c_str());
}
}
}
Modified: lldb/trunk/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp?rev=181078&r1=181077&r2=181078&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp (original)
+++ lldb/trunk/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp Fri May 3 18:56:12 2013
@@ -720,11 +720,9 @@ DynamicLoaderDarwinKernel::KextImageInfo
Stream *s = &process->GetTarget().GetDebugger().GetOutputStream();
if (s)
{
- char memory_module_uuidbuf[64];
- char exe_module_uuidbuf[64];
s->Printf ("warning: Host-side kernel file has Mach-O UUID of %s but remote kernel has a UUID of %s -- a mismatched kernel file will result in a poor debugger experience.\n",
- exe_module->GetUUID().GetAsCString(exe_module_uuidbuf, sizeof (exe_module_uuidbuf)),
- m_uuid.GetAsCString(memory_module_uuidbuf, sizeof (memory_module_uuidbuf)));
+ exe_module->GetUUID().GetAsString().c_str(),
+ m_uuid.GetAsString().c_str());
s->Flush ();
}
}
@@ -770,8 +768,7 @@ DynamicLoaderDarwinKernel::KextImageInfo
Stream *s = &target.GetDebugger().GetOutputStream();
if (s)
{
- char uuidbuf[64];
- s->Printf ("Kernel UUID: %s\n", m_memory_module_sp->GetUUID().GetAsCString(uuidbuf, sizeof (uuidbuf)));
+ s->Printf ("Kernel UUID: %s\n", m_memory_module_sp->GetUUID().GetAsString().c_str());
s->Printf ("Load Address: 0x%" PRIx64 "\n", m_load_address);
}
}
@@ -872,9 +869,8 @@ DynamicLoaderDarwinKernel::KextImageInfo
Stream *s = &target.GetDebugger().GetOutputStream();
if (s)
{
- char uuidbuf[64];
s->Printf ("warning: Can't find binary/dSYM for %s (%s)\n",
- m_name.c_str(), m_uuid.GetAsCString(uuidbuf, sizeof (uuidbuf)));
+ m_name.c_str(), m_uuid.GetAsString().c_str());
}
}
Modified: lldb/trunk/source/Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.cpp?rev=181078&r1=181077&r2=181078&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.cpp (original)
+++ lldb/trunk/source/Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.cpp Fri May 3 18:56:12 2013
@@ -208,16 +208,15 @@ SymbolVendorMacOSX::CreateInstance (cons
lldb_private::UUID dsym_uuid;
if (dsym_objfile_sp->GetUUID(&dsym_uuid))
{
- char uuid_cstr_buf[64];
- const char *uuid_cstr = dsym_uuid.GetAsCString (uuid_cstr_buf, sizeof(uuid_cstr_buf));
- if (uuid_cstr)
+ std::string uuid_str = dsym_uuid.GetAsString ();
+ if (!uuid_str.empty())
{
char *resources = strstr (dsym_path, "/Contents/Resources/");
if (resources)
{
char dsym_uuid_plist_path[PATH_MAX];
resources[strlen("/Contents/Resources/")] = '\0';
- snprintf(dsym_uuid_plist_path, sizeof(dsym_uuid_plist_path), "%s%s.plist", dsym_path, uuid_cstr);
+ snprintf(dsym_uuid_plist_path, sizeof(dsym_uuid_plist_path), "%s%s.plist", dsym_path, uuid_str.c_str());
FileSpec dsym_uuid_plist_spec(dsym_uuid_plist_path, false);
if (dsym_uuid_plist_spec.Exists())
{
More information about the lldb-commits
mailing list