clayborg added a comment. In https://reviews.llvm.org/D46810#1111570, @jankratochvil wrote:
> In https://reviews.llvm.org/D46810#1098110, @clayborg wrote: > > > So this problem exists both in the LLDB and LLVM DWARF parsers. I am not > > sure this fix is safe. I would rather fix this by fixing DWARFDIE class to > > "do the right thing". We should be able to teach the DWARFDIE class to > > replace its "m_die" with the updated "m_die" if a method ever causes > > DWARFDIE to need to expand all DIEs in a DWARFUnit. That seems like a much > > safer fix. Having m_first_die is not safe because it if you call > > DWARFDIE::GetFirstChild() it will just add 1 to the "m_die" and we will > > crash. All parent, sibling and child code just do pointer arithmetic to > > find their counterparts. So since DWARFDIE has the "DWARFUnit *m_cu;" and > > "DWARFDebugInfoEntry *m_die;" we should use DWARFDIE to abstract this from > > users. Anyone playing directly with DWARFDebugInfoEntry must know the rules > > and do the right thing or just use DWARFDIE. > > > Is this statement still valid now with `DWARFBaseDIE`? Statement isn't valid, but we should cleanup the DIE parsing code so we have dedicated parsing for the unit DIE only and for all DIEs and remove the m_die_array_size() function. https://reviews.llvm.org/D46810 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits