Hi Mark --

I'll pass your comments on to the DWARF Committee.

On 03/18/14 07:33, Mark Wielaard wrote:
Hi,

I was reading the suggestion for adding MD5 digests to the .debug_line
program header. http://dwarfstd.org/ShowIssue.php?issue=130701.1

Adding more attributes of files seems like a good thing, but as
specified this isn't extensible without changing the version number
again and defining new formats. Would it be possible to make this a
little more generic and vendor extensible?

The .debug_macro proposal includes some language for defining
extensibility that could possibly be used.
http://dwarfstd.org/ShowIssue.php?issue=110722.1

So instead of a fixed file_entry_format (ubyte) field that just allows
one attribute (group) to be defined we could change it to something
like:

file_attributes (ubyte)
   - Possibly zero, number of attributes added to each file in the
     file_names table.
file_attribute_description (sequence of attribute descriptions)
   - Entries in this description describe which attributes and in what
     format those attributes are encoded for each file entry. It has
     file_attributes entries. Each entry consists of:
     - file_attribute (ubyte). One of DW_LNF_timestamp,
       DW_LNF_length, DW_LNF_MD5, ...
     - file_attribute_format. A uleb128 describing the number of
       arguments for the format followed a single byte describing the
       form of the argument. The allowed values are DW_FORM_data1,
       DW_FORM_data2, DW_FORM_data4, DW_FORM_data8, DW_FORM_sdata, 
DW_FORM_udata,
       DW_FORM_block, DW_FORM_block1, DW_FORM_block2, DW_FORM_block4, 
DW_FORM_flag,
       DW_FORM_string, DW_FORM_strp and DW_FORM_sec_offset.

file_names (sequence of file entries)
   - Each entry consists of the following values:
     - A null-terminated string containing the full or relative path name
       of a source file.
     - An unsigned LEB128 number representing the directory index of a
       directory in the include_directories section.
     - For each file_attribute_format described in the
       file_attribute_description entries the value encoded in the format
       given by file_attribute_format.

For example DW_LNF_timestamp and DW_LNF_length would have as format 1
DW_FORM_udata. DW_LNF_MD5 could by described by 2 DW_FORM_data8.

That would allow extending the number of attributes in later DWARF
versions or as vendor extensions and give consumers a way to skip over
any unknown attributes.

Would something like the above suggestion be useful? Then I can work it
out a bit more. Did I miss any subtle corner cases? What is the status
of the .debug_macro proposal (110722.1)? It would be good to match the
descriptions of both extension mechanisms as much as possible.

Thanks,

Mark

_______________________________________________
Dwarf-Discuss mailing list
Dwarf-Discuss@lists.dwarfstd.org
http://lists.dwarfstd.org/listinfo.cgi/dwarf-discuss-dwarfstd.org



--
Michael Eager    ea...@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077
_______________________________________________
Dwarf-Discuss mailing list
Dwarf-Discuss@lists.dwarfstd.org
http://lists.dwarfstd.org/listinfo.cgi/dwarf-discuss-dwarfstd.org

Reply via email to