[Lldb-commits] [PATCH] D62852: Ignore DIEs in the skeleton unit in a DWO scenario

Pavel Labath via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Tue Jun 4 11:01:45 PDT 2019

labath marked an inline comment as done.
labath added inline comments.

Comment at: source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp:243-251
+    // With -fsplit-dwarf-inlining, clang will emit non-empty skeleton compile
+    // units. We are not able to access these DIE *and* the dwo file
+    // simultaneously. We also don't need to do that as the dwo file will
+    // contain a superset of information. So, we just delete these extra DIEs
+    // (if any) and reclaim some space.
+    m_die_array.resize(1);
+    m_die_array.shrink_to_fit();
clayborg wrote:
> clayborg wrote:
> > Can we detect and just not parse in the first place so we don't parse then throw away?
> Also, what if we have one DWO file that isn't there where we don't delete these DIEs, followed by one that is. Won't we run into lldb::user_id_t collisions in this case? Should we just never parse DWO DIEs other than the first one to avoid this?
I've changed the parsing logic to bail out earlier.

There won't be any UID collisions if only some of the dwo files are missing, because we will, for all intents and purposes, treat a compile with a missing dwo file the same way as a regular (non-dwo) compile unit. And we already support mixing dwo and non-dwo compile units in a single file.



More information about the lldb-commits mailing list