jasonmolenda added a comment.

I guess to say it shorter.  If I have a dwarf_aranges, that means the dwarf 
linker created it.  And if it created it, surely its at least based off of the 
subprogram address ranges or the line table -- that is, the text address 
ranges.  If I have a DW_TAG_compile_unit DW_AT_ranges, either the compiler (to 
the .o file) created it, in which case I really am suspicious of those ranges 
because the compiler can't know which symbols will end up in the final 
executable, and the addresses in the ranges were simply translated to the final 
executable address equivalents.  Or it was rewritten by a dwarf linker that 
parsed the DWARF and knew how to correctly calculate the addresses that 
correspond to that compile unit.

if anything, I would trust a dwarf_aranges entry for a CU before I would trust 
the CU's DW_AT_ranges list.  Both have to be written by the dwarf linker to be 
correct, but only the former is written ONLY by the dwarf linker.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D68655

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

Reply via email to