[Lldb-commits] [PATCH] D58330: 01/03: new SectionPart for Section subranges (for effective .debug_types concatenation)

Jan Kratochvil via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Mon Feb 18 02:42:45 PST 2019

jankratochvil added a comment.

In D58330#1400847 <https://reviews.llvm.org/D58330#1400847>, @labath wrote:

> Ok, I see what you mean. It's nice that we don't have this regression in the base case. Though I guess we will still do the copying as soon as debug_types sections appear.

That is not the case. If both `.debug_info` and `.debug_types` are uncompressed then the concatenated section just points to the start of `.debug_info` and ends at the end of `.debug_types` section, ignoring some "garbage" between those two sections (containing sections bettern `.debug_info` and `.debug_types`).

I will try to investigate your DW_FORM_* suggestion more thoroughly, thanks.  It should have the same performance just the code may be more simple.

> I assume there has to be a place where you take something which refers to a DIE in a different section, and then add the magic offset to account for the concatenation, because the magic offset will not be present in dwarf.

D40474 <https://reviews.llvm.org/D40474> patches `DWARFFormValue::Reference()`. Common `DW_FORM_ref*` are CU-relative so they need no change.  One needs the magic offset (`dwz_debug_info_data.GetByteSize()`) only for `DW_FORM_ref_addr`. And then also DWZ-specific `DW_FORM_GNU_ref_alt`.




More information about the lldb-commits mailing list