bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug binutils/27387] [readelf] Support -ggdb3 -gsplit-dwarf output


From: nickc at redhat dot com
Subject: [Bug binutils/27387] [readelf] Support -ggdb3 -gsplit-dwarf output
Date: Mon, 01 Mar 2021 11:58:46 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=27387

--- Comment #13 from Nick Clifton <nickc at redhat dot com> ---
Hi Tom,

> >         .section        .debug_macro.dwo,"e",@progbits
> >         .value  0x4     # DWARF macro version number

I think that this may be a clue.  It looks like the assembler is creating
version 4 .debug_macro.dwo sections, but the DWARF-5 standard only defines
version 5 sections.  Ie, the assembler is for a proposed GNU extension to
DWARF, rather than for an official DWARF-5 version.

I think that this matters because of the following bytes:

[This is from the second .debug_macro.dwo section in hello.s, as this
is simpler):

        .value  0x4     <= version
        .byte   0       <= flags
        .byte   0x5
        .uleb128 0x13
        .uleb128 0x2a4

According to my reading of section 6.3.1 there ought to be *two* bytes
following the flags, and before the first LEB128 value:

  "The table starts with a 1-byte count of the defined opcodes, 
   followed by an entry for each of those opcodes. Each entry 
   starts with a 1-byte unsigned opcode number ..."

And then only one LEB128 value for each entry:

   "... followed by unsigned LEB128 encoded number of operands
    and for each operand there is a single unsigned byte 
    describing the form in which the operand is encoded."

So basically the encoding sequence used for v4 .debug_macro.dwo 
sections is completely different from the encoding for v5 sections.

Hence I think that we need to find the specification for this v4
type of section.  Do you know where it might be found ?

I also suspect that the "version 0" errors that we have been seeing
are due to the tools trying to interpret these sections as v5
sections, and so getting very confused.

Cheers
  Nick

-- 
You are receiving this mail because:
You are on the CC list for the bug.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]