[Dwarf-Discuss] Add file attributes to debug-line file table (proposal 130701.1)

Robinson, Paul Paul_Robinson at playstation.sony.com
Mon Mar 31 16:11:36 PDT 2014


As the original proposer, I say, Hear hear.  The main reasons to choose
that particular scheme were:
- producers that use type sections must already have an MD5 implementation;
- Visual Studio debugger integration uses it.
But a more flexible scheme allowing other schemes would be a Good Thing.
--paulr

> -----Original Message-----
> From: dwarf-discuss-bounces at lists.dwarfstd.org [mailto:dwarf-discuss-
> bounces at lists.dwarfstd.org] On Behalf Of Eric Christopher
> Sent: Monday, March 31, 2014 3:57 PM
> To: Mark Wielaard
> Cc: DWARF
> Subject: Re: [Dwarf-Discuss] Add file attributes to debug-line file
> table (proposal 130701.1)
> 
> FWIW I fully agree with this line of reasoning. I was going to propose
> it as well (though not as comperhensively) since we may decide that we
> want to use something other than "the low 64-bits of an md5 hash" to
> represent the file. Speaking of which, the particular hash and such
> should be explicitly changeable in the header.
> 
> -eric
> 
> On Tue, Mar 18, 2014 at 7:33 AM, Mark Wielaard <mjw at redhat.com> 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 at lists.dwarfstd.org
> > http://lists.dwarfstd.org/listinfo.cgi/dwarf-discuss-dwarfstd.org
> _______________________________________________
> Dwarf-Discuss mailing list
> Dwarf-Discuss at lists.dwarfstd.org
> http://lists.dwarfstd.org/listinfo.cgi/dwarf-discuss-dwarfstd.org





More information about the Dwarf-Discuss mailing list