diff options
| author | Pavel Labath <labath@google.com> | 2016-03-31 13:30:04 +0000 |
|---|---|---|
| committer | Pavel Labath <labath@google.com> | 2016-03-31 13:30:04 +0000 |
| commit | 63168e08bdd71641d75cb03300730a852c6540a4 (patch) | |
| tree | 8ec72cbcded65d3e15e8fb0b9105f6df925325d7 /lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp | |
| parent | 2e9f69d933308b781ba333989e4045ca10216b0d (diff) | |
| download | bcm5719-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.cpp | 7 |
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); +} |

