diff options
author | Greg Clayton <gclayton@apple.com> | 2013-05-10 21:47:16 +0000 |
---|---|---|
committer | Greg Clayton <gclayton@apple.com> | 2013-05-10 21:47:16 +0000 |
commit | 57abc5d6a6f393f488903c5a35e5a898fc201d3a (patch) | |
tree | 25cef51feff2409f74f0bdb1bd9938c20d138ba5 /lldb/source/Core/Module.cpp | |
parent | bf0bd1f4ab2b9b4826d58407962260256d4b3709 (diff) | |
download | bcm5719-llvm-57abc5d6a6f393f488903c5a35e5a898fc201d3a.tar.gz bcm5719-llvm-57abc5d6a6f393f488903c5a35e5a898fc201d3a.zip |
<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
Diffstat (limited to 'lldb/source/Core/Module.cpp')
-rw-r--r-- | lldb/source/Core/Module.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/lldb/source/Core/Module.cpp b/lldb/source/Core/Module.cpp index 7f403472cda..b5874daeb80 100644 --- a/lldb/source/Core/Module.cpp +++ b/lldb/source/Core/Module.cpp @@ -136,6 +136,7 @@ Module::Module (const ModuleSpec &module_spec) : m_symfile_spec (module_spec.GetSymbolFileSpec()), m_object_name (module_spec.GetObjectName()), m_object_offset (module_spec.GetObjectOffset()), + m_object_mod_time (module_spec.GetObjectModificationTime()), m_objfile_sp (), m_symfile_ap (), m_ast (), @@ -168,7 +169,8 @@ Module::Module (const ModuleSpec &module_spec) : Module::Module(const FileSpec& file_spec, const ArchSpec& arch, const ConstString *object_name, - off_t object_offset) : + off_t object_offset, + const TimeValue *object_mod_time_ptr) : m_mutex (Mutex::eMutexTypeRecursive), m_mod_time (file_spec.GetModificationTime()), m_arch (arch), @@ -178,6 +180,7 @@ Module::Module(const FileSpec& file_spec, m_symfile_spec (), m_object_name (), m_object_offset (object_offset), + m_object_mod_time (), m_objfile_sp (), m_symfile_ap (), m_ast (), @@ -198,6 +201,10 @@ Module::Module(const FileSpec& file_spec, if (object_name) m_object_name = *object_name; + + if (object_mod_time_ptr) + m_object_mod_time = *object_mod_time_ptr; + Log *log(lldb_private::GetLogIfAnyCategoriesSet (LIBLLDB_LOG_OBJECT|LIBLLDB_LOG_MODULES)); if (log) log->Printf ("%p Module::Module((%s) '%s%s%s%s')", @@ -1186,12 +1193,6 @@ Module::FindSymbolsMatchingRegExAndType (const RegularExpression ®ex, SymbolT return sc_list.GetSize() - initial_size; } -const TimeValue & -Module::GetModificationTime () const -{ - return m_mod_time; -} - void Module::SetSymbolFileFileSpec (const FileSpec &file) { |