<rdar://problem/13854277>

<rdar://problem/13594769>

Main changes in this patch include:
- cleanup plug-in interface and use ConstStrings for plug-in names
- Modfiied the BSD Archive plug-in to be able to pick out the correct .o file when .a files contain multiple .o files with the same name by using the timestamp
- Modified SymbolFileDWARFDebugMap to properly verify the timestamp on .o files it loads to ensure we don't load updated .o files and cause problems when debugging

The plug-in interface changes:

Modified the lldb_private::PluginInterface class that all plug-ins inherit from:

Changed:

virtual const char * GetPluginName() = 0;

To: 

virtual ConstString GetPluginName() = 0;

Removed:

virtual const char * GetShortPluginName() = 0;

- Fixed up all plug-in to adhere to the new interface and to return lldb_private::ConstString values for the plug-in names. 
- Fixed all plug-ins to return simple names with no prefixes. Some plug-ins had prefixes and most ones didn't, so now they all don't have prefixed names, just simple names like "linux", "gdb-remote", etc.

llvm-svn: 181631
This commit is contained in:
Greg Clayton
2013-05-10 21:47:16 +00:00
parent bf0bd1f4ab
commit 57abc5d6a6
102 changed files with 653 additions and 881 deletions

View File

@@ -160,10 +160,11 @@ ObjectFileELF::Terminate()
PluginManager::UnregisterPlugin(CreateInstance);
}
const char *
lldb_private::ConstString
ObjectFileELF::GetPluginNameStatic()
{
return "object-file.elf";
static ConstString g_name("elf");
return g_name;
}
const char *
@@ -236,14 +237,8 @@ ObjectFileELF::GetModuleSpecifications (const lldb_private::FileSpec& file,
//------------------------------------------------------------------
// PluginInterface protocol
//------------------------------------------------------------------
const char *
lldb_private::ConstString
ObjectFileELF::GetPluginName()
{
return "ObjectFileELF";
}
const char *
ObjectFileELF::GetShortPluginName()
{
return GetPluginNameStatic();
}