Dwarf_FDE (libdw)

Sasha Da Rocha Pinheiro darochapinhe@wisc.edu
Sat Jul 15 01:01:00 GMT 2017

I did not understand how to get the augmentation_data of a FDE. Could anyone explain me?
Also, is the start and end of Dwarf_FDE to be used as [initial_location, initial_location+address_range)??


typedef struct
  /* Section offset of CIE this FDE refers to.  This will never be
     DW_CIE_ID_64 in an FDE.  If this value is DW_CIE_ID_64, this is
     actually a Dwarf_CIE structure.  */
  Dwarf_Off CIE_pointer;

  /* We can't really decode anything further without looking up the CIE
     and checking its augmentation string.  Here follows the encoded
     initial_location and address_range, then any augmentation data,
     then the instruction stream.  This FDE describes PC locations in
     the byte range [initial_location, initial_location+address_range).
     When the CIE augmentation string uses 'z', the augmentation data is
     a DW_FORM_block (self-sized).  Otherwise, when we understand the
     augmentation string completely, fde_augmentation_data_size gives
     the number of bytes of augmentation data before the instructions.  */
  const uint8_t *start;
  const uint8_t *end;
} Dwarf_FDE;

More information about the Elfutils-devel mailing list