google / bloaty

Bloaty: a size profiler for binaries
Apache License 2.0
4.66k stars 337 forks source link

Fix non-standard parsing of DWARF 5 Type Unit Headers (7.5.3) #356

Open zadewg opened 1 year ago

zadewg commented 1 year ago

It appears to me that the current implementation of DWARF 5 Unit Type Header parsing in CU::ReadHeader does not honour the standard.

Section 7.5.1.3 Type Unit Headers reads:

3. unit_type (ubyte)
A 1-byte unsigned integer identifying this unit as a type unit. The value of
this field is DW_UT_type for a non-split type unit (see Section 3.1.4 on
page 68) or DW_UT_split_type for a split type unit.

The current implementation associates DW_UT_split_type with Skeleton and Split Compilation Unit Headers (7.5.1.2), wrongly consuming a dwo_id unit ID an missing the type_signature and type_offset information.

google-cla[bot] commented 1 year ago

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

zadewg commented 12 months ago

@haberman any thoughts on this?