summaryrefslogtreecommitdiffstats
path: root/lldb/source/Symbol/SymbolFile.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Symbol/SymbolFile.cpp')
-rw-r--r--lldb/source/Symbol/SymbolFile.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/lldb/source/Symbol/SymbolFile.cpp b/lldb/source/Symbol/SymbolFile.cpp
index 223e678e98e..be895b645cf 100644
--- a/lldb/source/Symbol/SymbolFile.cpp
+++ b/lldb/source/Symbol/SymbolFile.cpp
@@ -31,6 +31,9 @@ void SymbolFile::PreloadSymbols() {
std::recursive_mutex &SymbolFile::GetModuleMutex() const {
return GetObjectFile()->GetModule()->GetMutex();
}
+ObjectFile *SymbolFile::GetMainObjectFile() {
+ return m_obj_file->GetModule()->GetObjectFile();
+}
SymbolFile *SymbolFile::FindPlugin(ObjectFile *obj_file) {
std::unique_ptr<SymbolFile> best_symfile_up;
@@ -206,7 +209,7 @@ Symtab *SymbolFile::GetSymtab() {
return m_symtab;
// Fetch the symtab from the main object file.
- m_symtab = m_obj_file->GetModule()->GetObjectFile()->GetSymtab();
+ m_symtab = GetMainObjectFile()->GetSymtab();
// Then add our symbols to it.
if (m_symtab)
@@ -215,6 +218,15 @@ Symtab *SymbolFile::GetSymtab() {
return m_symtab;
}
+void SymbolFile::SectionFileAddressesChanged() {
+ ObjectFile *module_objfile = GetMainObjectFile();
+ ObjectFile *symfile_objfile = GetObjectFile();
+ if (symfile_objfile != module_objfile)
+ symfile_objfile->SectionFileAddressesChanged();
+ if (m_symtab)
+ m_symtab->SectionFileAddressesChanged();
+}
+
void SymbolFile::Dump(Stream &s) {
s.PutCString("Types:\n");
m_type_list.Dump(&s, /*show_context*/ false);
OpenPOWER on IntegriCloud