[PATCH] [binutils/readelf] Fix printing of dwarf5 .debug_info.dwo

Tom de Vries tdevries@suse.de
Thu May 30 12:22:59 GMT 2024


On 5/30/24 13:03, Nick Clifton wrote:
> Hi Tom,
> 
>> Fix this by assuming a sane default for str_offsets_base for dwarf5: 
>> the size
>> of the header of the .debug_str_offsets section, which is 8 for 32-bit 
>> dwarf
>> and 16 for 64-bit dwarf.
>>
>> Implement this by moving the reading of DW_AT_str_offsets_base to 
>> read_bases,
>> which also fixes the printing of DW_FORM_strx strings in the skeleton
>> compilation unit entries for attributes before the DW_AT_str_offsets_base
>> attribute.
>>
>> Conforming with the other code in read_bases, we only handle
>> DW_FORM_sec_offset, which means the code dealing with negative
>> str_offsets_base can be dropped.
>>
>> Tested on x86_64-linux.
> 
> The patch itself looks fine, but the new test fails for some targets, 
> such as:
> 
>    alpha-linux-gnu
>    mipsisa64r6-elf
>    nios2-elf
> 
> The failure message looks like this:
> 
>    output: readelf: Warning: DIE at offset 0x14 refers to abbreviation 
> number 15349 which does not exist
> 
> Also the sh-elf target fails but for a different reason:
> 
>    readelf-str-offsets-base.s: Assembler messages:
>    readelf-str-offsets-base.s:17: Error: misaligned data
> 
> Would you mind taking a look at these please ?
> 
> It is OK to skip the test for a particular architecture if there
> is a good reason for it.  But if you do decide to do that, please
> add the reason into the test driver file as a comment.
> 

Hi Nick,

thanks for the review.

These failures where caused by using directives that were not a fixed 
amount of bytes.  Fixed in a v2 submitted here ( 
https://sourceware.org/pipermail/binutils/2024-May/134421.html ).

Thanks,
- Tom

> Cheers
>    Nick
> 
> 



More information about the Binutils mailing list