diff options
Diffstat (limited to 'lldb/source/Core/Module.cpp')
-rw-r--r-- | lldb/source/Core/Module.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/lldb/source/Core/Module.cpp b/lldb/source/Core/Module.cpp index 262e15dbcc7..e9d9c5e7c5a 100644 --- a/lldb/source/Core/Module.cpp +++ b/lldb/source/Core/Module.cpp @@ -1300,6 +1300,12 @@ void Module::SectionFileAddressesChanged() { sym_vendor->SectionFileAddressesChanged(); } +UnwindTable &Module::GetUnwindTable() { + if (!m_unwind_table) + m_unwind_table.emplace(*this); + return *m_unwind_table; +} + SectionList *Module::GetUnifiedSectionList() { if (!m_sections_up) m_sections_up = llvm::make_unique<SectionList>(); @@ -1446,6 +1452,10 @@ void Module::SetSymbolFileFileSpec(const FileSpec &file) { // one obj_file->ClearSymtab(); + // Clear the unwind table too, as that may also be affected by the + // symbol file information. + m_unwind_table.reset(); + // The symbol file might be a directory bundle ("/tmp/a.out.dSYM") // instead of a full path to the symbol file within the bundle // ("/tmp/a.out.dSYM/Contents/Resources/DWARF/a.out"). So we need to |