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

Reply via email to