[Bug target/41473] [4.5 Regression] dsymutil "Assertion failed ..."
howarth at nitro dot med dot uc dot edu
gcc-bugzilla@gcc.gnu.org
Fri Nov 20 18:59:00 GMT 2009
------- Comment #29 from howarth at nitro dot med dot uc dot edu 2009-11-20 18:59 -------
I have some additional comments from the dsymutils maintainer...
>>> 7397601 is a bug in dsymutils. It was not handling the case when the
>>> dwarf debug info contained an AT_location with form DW_FORM_block1 with
>>> zero length. It may also be possible to have the compiler not emit that
>>> as a work around.
Clarification: The fix was made for any block form (DW_FORM_block1,
DW_FORM_block2, DW_FORM_block4, DW_FORM_block) variant that had zero length.
>> One other question. Does dwarf debug info on an AT_location with form
>> DW_FORM_block1 that has zero length have any real meaning or is
>> that likely just accidental noise on the dwarf debug output?
It is probably accidental noise, or a bug. The variable should be checked to
make sure it really doesn't have a location, and if it doesn't just don't emit
the DW_AT_location attribute. If it does have a valid location, then a lenght
of zero is probably a bug.
>> If zero length dwarf debug info, is either invalid or effectively a noop,
>> we may just be suffering from the fact binutils is immune to such flaws in
>> the dwarf output. Then, darwin might actually be useful in helping identify
>> bogus dwarf info being emitted. Thanks in advance for any clarifications.
I have modified dwarfdump to properly dump the information and I did check the
DWARF spec, and it seems that it is ok to have DW_FORM_blockXXX forms with
zero length, so it isn't invalid DWARF.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41473
More information about the Gcc-bugs
mailing list