[DWARF5][SplitDwarf] question on using fsplit-dwarf-inlining option

Hi DebugInfo folks,

I have a question on using fsplit-dwarf-inlining option:

"-fsplit-dwarf-inlining, -fno-split-dwarf-inlining

Provide minimal debug info in the object/executable to facilitate online symbolication/stack traces in the absence of .dwo/.dwp files when using Split DWARF"

i.e. it puts some debug info into compilation unit from First partition(with Skeleton unit).

At the same time, there is following requirement for split DWARF :

"When generating a split DWARF object file (see Section 7.3.2 on page 187), the compilation unit in the .debug_info section is a "skeleton" compilation unit with the tag DW_TAG_skeleton_unit

A skeleton compilation unit has no children."

Is the behavior of fsplit-dwarf-inlining option correct, then?

Yep, I wasn’t aware of that particular wording, but that would make this feature a non-conforming extension. Perhaps it should be off by default - but it’s still super useful to have around/I wouldn’t be OK with removing it.

In the future something like http://wiki.dwarfstd.org/index.php?title=TwoLevelLineTables might be able to replace this functionality & at a lower cost in object/executable size, but I’m not sure what state that is in and whether it does cover all the use cases.

06.12.2019 17:14, David Blaikie пишет:

Yep, I wasn’t aware of that particular wording, but that would make this feature a non-conforming extension. Perhaps it should be off by default - but it’s still super useful to have around/I wouldn’t be OK with removing it.

I tried to add check into the DWARFVerifier that skeleton unit has zero children but it did not pass because of this.

So yes, perhaps it would be good to set it off by default.

In the future something like http://wiki.dwarfstd.org/index.php?title=TwoLevelLineTables might be able to replace this functionality & at a lower cost in object/executable size, but I’m not sure what state that is in and whether it does cover all the use cases.

interestingly. it looks like an option.

Thank you, Alexey.