This is the mail archive of the dwarf2@corp.sgi.com mailing list for the dwarf2 project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

PROPOSAL(4): Size of pointers into .debug_* sections


This proposal concerns the size of pointers into .debug_loc etc.  In
the current draft (April 5), Section 7.4, it says:

	In a 64-bit safe DWARF description, all lengths of section
	contributions and all offsets into DWARF sections are 8 bytes
	in size.

I take this to mean that any attribute which has a value that is an
offset into .debug_loc, .debug_line, .debug_str, or .debug_macinfo must
be 8 bytes if the compilation unit is "64-bit safe."  That means using
DW_FORM_data8 for loc, line, and macinfo, but what about str?  The
document defines DW_FORM_strp as 

	a 4-byte offset into a string table contained in the
	.debug_str section of the object file

PROPOSAL

Modify all occurrences of the phrase "4-byte offset" which appear in
Section 7.5.4 to read "4- or 8-byte offset" and add the following
paragraph (in italics) after the first paragraph of Section 7.5.4:

	<i> The value of any attribute which contains the offset of
	data within any DWARF section will be 8 bytes in size if it
	appears within a compilation unit which is "64-bit safe"
	(see Section 7.4), otherwise it will be 4 bytes.<i>
	

DISCUSSION

This makes the interpretation of one (or four, if my proposal (2)
passes) more FORM(s) dependent upon the "64-bit safety" of the current
CU.  They become like DW_FORM_addr, the only FORM with a variable size
(currently) that does not encode its own size explicitly.

-- 
Dave Weatherford                Forte Tools
David.Weatherford@Sun.COM       Sun Microsystems, Inc.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]