[Dwarf-Discuss] Attribute DW_AT_location has form DW_FORM_sdata?

David Anderson davea42@earthlink.net
Thu Oct 6 00:12:36 GMT 2011


On 10/04/2011 12:34 PM, Ron Louzon wrote:
> Since dwarf_loclist_n() already supports DW_FORM_data4 
> and DW_FORM_data8, i s there any plan to update it in a future release 
> to accomodate DW_FORM_sdata?
>
For the record, a solution to proper handling of 
DW_AT_data_member_location  (while being
sensitive to the dwarf version of the compilation unit under 
consideration)  when using libdwarf
is the one used in dwarfdump:

             fc = dwarf_get_form_class(version,attr,offset_size,theform);
             if(fc == DW_FORM_CLASS_CONSTANT) {
                    ...and here read the data as a constant.
             } else {
                    call dwarf_loclist_n
              }

dwarf_get_form_class () understands that DW_FORM_data4 (for example) is 
a constant for DWARF4
but is a loclist offset for 32bit DWARF3.  And so on.

Anyone with information that I've messed up here, please let me know...

A new release is in the works, I've found a few small bugs and now 
dwarfdump2
will have all the checking and option features of dwarfdump.

Many thanks to Carlos Alberto Enciso and Paul Marinescu for 
recent-assistance/test-cases!
My apologies to folks who have helped but are not mentioned here.
DavidA.




More information about the Dwarf-discuss mailing list