[Dwarf-Discuss] Decoding DW_FORM_block1

Mark Wielaard mjw@redhat.com
Fri Jul 27 13:01:36 GMT 2012


On Fri, 2012-07-27 at 15:14 +0530, Arun KS wrote:
> Hello Guys,
> 
> I m not able to decode form DW_FORM_block1. I am able to read till
> attr data_member_location(marked with <<<<<<<<< below.).
> The form is comming as DW_FORM_block1. So I went and read debug_info,
> which gave me 0x2. So this means
> length is 2 and i have to read two more bytes. The next two bytes in
> .debug_info are 0x23 and 0x00.
> 
> What this values represent(0x23 an 0x00)?
> From where will I get  "[   0] plus_uconst 0" printed by "eu-readelf
> -winfo a.out"

So that is like eu-readelf tells you a block containing "0x23 0x00" aka
"DW_OP_plus_uconst 0x0", which together with the address of the
structure begin address on the dwarf stack, forms a location description
of the member. Note that newer instead of a block of opcodes, this can
also be expressed as a constant form by the producer, which would be
slightly more efficient. See "5.5.6 Data Member Entries" in the DWARF4
spec.

Cheers,

Mark




More information about the Dwarf-discuss mailing list