On Thu, Nov 24, 2016 at 04:07:22PM +0100, Jan Kratochvil wrote:
> On Thu, 20 Oct 2016 01:30:39 +0200, Jakub Jelinek wrote:
> > This patch adds support for DWARF5 .debug_line{,_str} section format,
> > though only if !DWARF2_ASM_LINE_DEBUG_INFO, because otherwise
> > .debug_line is emitted by the assembler.
>
> with current GCC trunk (with the GCC patch above) binutils readelf DWARF-5
> patch being prepared outputs:
>
> The File name Table (offset 0x30):
> Entry Name Dir
> 0 (indirect line string, offset: 0x0): /home/jkratoch/t/classic.C 0
> 1 (indirect line string, offset: 0x11): classic.C 1
>
> Please see the tabs there.
>
> After this GCC patch below readelf would output:
>
> The File name Table (offset 0x30):
> Entry Dir Name
> 0 0 (indirect line string, offset: 0x0): /home/jkratoch/t/classic.C
> 1 1 (indirect line string, offset: 0x11): classic.C
>
> That 'indirect line string' may get removed, that is irrelevant for this mail.
>
> I could reorder that in readelf but I find it easier to do in GCC.
> Also binutils has not switched to C++ yet so I have found the reordering not
> trivial to do in readelf itself.
>
> The readelf patch being prepared - not yet submitted:
> https://people.redhat.com/jkratoch/readelf-dwarf5.patch
>
> OK for GCC trunk?
>
> Sorry I have not regression tested it, I would handle that before a check-in.
Dunno, will defer to Jason. I'd think that reordering for improved
readability should be readelf's job, and that the current order better
matches the DWARF4 order. But it isn't a big deal for me.
Some other producer might emit it in a different order though...
E.g. readelf could print each entry in 2 passes, first prints selected
subset of DW_LCNT_* and the other pass prints the remaining ones.
Jakub