[PATCH] Improve debug info for Ada (2/4)

Geoffrey Keating geoffk@apple.com
Fri Jun 8 18:03:00 GMT 2007


On 07/06/2007, at 11:05 PM, Eric Botcazou wrote:

> Hi Geoff,
>
>> Your patch
>> [...]
>> breaks bootstrap on i386-darwin9, because the Darwin backend is not
>> expecting the debug information type to suddenly change from DWARF to
>> nothing in the middle of a compilation.  See the definition of
>> DBX_REGISTER_NUMBER in darwin.h.
>
> Could you clarify the failure mode?

This assert in dwarf2out.c fails building libjava:

       gcc_assert (cfa.reg
                   == (unsigned long)DWARF_FRAME_REGNUM  
(STACK_POINTER_REGNUM));

because cfa.reg is 4 and it's expecting 5.

>> All the other implementation of DECL_IGNORED_P is done by the
>> debugging output backends and it's done differently for each
>> backend.  In particular the DWARF output code doesn't actually
>> suppress any debug information, it just marks it as
>> DW_AT_artificial.  We had extensive discussion about this on the list
>> and agreed this was the right thing to do.
>
> Yes, that's why I wanted to expand the semantics, in order to avoid  
> emitting
> useless debug info for whole functions.

It's not all useless in all circumstances.  For instance, if the  
debugger stops in such a function (due to a crash or a breakpoint set  
on an address) I think you'd need pretty much all of it.

>> So, I propose reverting this patch.  What do you think?
>
> Can we get away with defining DWARF_FRAME_REGNUM for x86/Darwin?

I don't think so, or that's what would have been implemented originally.

I can confirm that backing out the change allows a successful bootstrap.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2462 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20070608/f4a9a3b9/attachment.p7s>


More information about the Gcc-patches mailing list