labath accepted this revision.
labath added inline comments.
This revision is now accepted and ready to land.


================
Comment at: lldb/source/Plugins/SymbolFile/DWARF/ManualDWARFIndex.cpp:402
     DWARFUnit &unit, llvm::function_ref<bool(DWARFDIE die)> callback) {
-  lldbassert(!unit.GetSymbolFileDWARF().GetDwoNum());
+  lldbassert(!unit.GetSymbolFileDWARF().GetFileIndex());
   Index();
----------------
clayborg wrote:
> Does this assert really need to exist? Why would we not require a .dwo file 
> (old code) be able to index? Can we remove this assert? It seems wrong?
That was because it a split dwarf setup, there are two compile units, two 
symbol files and two CU DIEs. In a DIERef, the unit offset refers to the offset 
of the main unit within the main symbol file (because that's globally unique), 
but the die offset refers to the offset in the separate file (because that's 
where the dies are).  The indexing process needs to start with the main unit 
(not the one from the split file) in order for the DIERefs to come out right, 
and these assertions were enforcing that. Therefore, I think we should put all 
of these back in.

Or at least, that was the case at some point in the past... I don't know 
whether this has changed since then, but I wouldn't expect it to.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D138618/new/

https://reviews.llvm.org/D138618

_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to