summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp
diff options
context:
space:
mode:
authorPavel Labath <labath@google.com>2016-03-31 13:30:04 +0000
committerPavel Labath <labath@google.com>2016-03-31 13:30:04 +0000
commit63168e08bdd71641d75cb03300730a852c6540a4 (patch)
tree8ec72cbcded65d3e15e8fb0b9105f6df925325d7 /lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp
parent2e9f69d933308b781ba333989e4045ca10216b0d (diff)
downloadbcm5719-llvm-63168e08bdd71641d75cb03300730a852c6540a4.tar.gz
bcm5719-llvm-63168e08bdd71641d75cb03300730a852c6540a4.zip
Fix DWO breakage in r264909
Summary: In case of Dwo, DIERef stores a compile unit offset in the main object file, and not in the dwo. The implementation of SymbolFileDWARFDwo::GetDIE inherited from SymbolFileDWARF tried to lookup the compilation unit in the DWO based on the main object file offset (and failed). I change the implementation to verify the DIERef indeed references compile unit belonging to this dwo and then lookup the die based on the die offset alone. Includes a couple of fixes for mismatched struct/class tags. Reviewers: tberghammer, clayborg Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D18646 llvm-svn: 265011
Diffstat (limited to 'lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp')
-rw-r--r--lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp
index 326c397c83d..ca7f6a8f366 100644
--- a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp
+++ b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp
@@ -129,3 +129,10 @@ SymbolFileDWARFDwo::GetTypeSystemForLanguage(LanguageType language)
{
return GetBaseSymbolFile()->GetTypeSystemForLanguage(language);
}
+
+DWARFDIE
+SymbolFileDWARFDwo::GetDIE(const DIERef &die_ref)
+{
+ assert(m_base_dwarf_cu->GetOffset() == die_ref.cu_offset);
+ return DebugInfo()->GetDIEForDIEOffset(die_ref.die_offset);
+}
OpenPOWER on IntegriCloud