dblaikie added a comment.

In D70840#1765876 <https://reviews.llvm.org/D70840#1765876>, @mstorsjo wrote:

> In D70840#1765219 <https://reviews.llvm.org/D70840#1765219>, @labath wrote:
>
> > debug_aranges is a sort of a lookup table for speeding up address->compile 
> > unit searches. llvm does not generate it by default since, and I think the 
> > reason is that you can usually get the same kind of data from the 
> > DW_AT_ranges attribute of the compile unit.
>
>
> Ok, thanks for the explanation!
>
> On the topic of debug_aranges (but unrelated to this thread), I've been 
> notified about a project, drmingw, a postmortem debugger for the mingw 
> environment (I think), which stumbles on code built by llvm exactly due to 
> the lack of debug_aranges: 
> https://github.com/jrfonseca/drmingw/issues/42#issuecomment-526850588 They 
> speculate that it almost even would be mandated by the dwarf spec.


Yeah, I've had some conversations with folks on a couple of different things 
that have been curious about Clang/LLVM's lack of debug_aranges - my general 
take on it (as one of the people involved in turning off debug_aranges by 
default in LLVM's output - it can still be enabled by -gdwarf-aranges) is that 
they add a significant amount of object size for little benefit compared to the 
ranges on CU DIEs themselves. Clients who read input without aranges for a 
given CU should look in the CU DIE to see if there are ranges there - it should 
add very little overhead to consumers & save some significant debug info size 
(especially for split-dwarf in object sizes (where the relocations still exist 
& take up a fair bit of space - especially with compression enabled, where 
relocations are not compressed)).


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

https://reviews.llvm.org/D70840



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

Reply via email to