jankratochvil added a comment. In https://reviews.llvm.org/D46810#1097503, @labath wrote:
> - if nothing has been parsed, m_die_array is empty and m_first_die is empty > - if the cu die has been parsed, m_die_array us empty and m_first_die is full > - if everything has been parsed m_first_die and m_die_array are full, **and** > the first element of m_die_array contains a copy of m_first_die Is that an > accurate description of what you are doing here? Yes. I will add a comment to the code. > (If that is true, then I think this is workable, but there are still some > details which need to be ironed out; e.g., `m_first_die.GetFirstChild()`) The current code calling `GetUnitDIEOnly()` (returning `DWARFDIE`) or `GetUnitDIEPtrOnly` (returning `DWARFDebugInfoEntry *`) is never dealing with child DIEs of what it gets - it also makes sense as there is no guarantee they have been read in. Such code would already cause ASAN error accessing memory behind `std::vector`. So I find such assertion check orthogonal to this patch but I will prepare another patch for that. Thanks for checking validity of this patch, I was not sure whether LLDB code is intended to be thread-safe in the first place. https://reviews.llvm.org/D46810 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits