[lldb/DWARF] Don't assume that a SymbolFileDWARFDwo contains one compile unit
Summary: This is a preparatory patch to re-enable DWP support in lldb (we already have code claiming to do that, but it has been completely broken for a while now). The idea of the new approach is to make the SymbolFileDWARFDwo class handle both dwo and dwo files, similar to how llvm uses one DWARFContext to handle the two. The first step is to remove the assumption that a SymbolFileDWARFDwo holds just a single compile unit, i.e. the GetBaseCompileUnit method. This requires changing the way how we reach the skeleton compile unit (and the lldb_private::CompileUnit) from a dwo unit, which was previously done via GetSymbolFile()->GetBaseCompileUnit() (and some virtual dispatch). The new approach reuses the "user data" mechanism of DWARFUnits, which was used to link dwarf units (both skeleton and split) to their lldb_private counterparts. Now, this is done only for non-dwo units, and instead of that, the dwo units holds a pointer to the relevant skeleton unit. Reviewers: JDevlieghere, aprantl, clayborg Reviewed By: JDevlieghere, clayborg Subscribers: arphaman, lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D73781
Loading
Please sign in to comment