Bootstrap failure of gcc-ss-20010409 in ia64
Daniel Berlin
dan@www.cgsoftware.com
Tue Apr 17 08:57:00 GMT 2001
On Tue, 17 Apr 2001, Mark Mitchell wrote:
> >>>>> "Jim" == Jim Wilson <wilson@cygnus.com> writes:
>
> Jim> Not emitting the abstract origin attribute would be easy.
> Jim> This will give a die with no type or size info, which is
> Jim> pretty useless. I suspect gdb will give a reasonable error
> Jim> message instead of failing, but haven't tried it yet.
>
> Jim> For a slightly more complicated change, we could check to see
> Jim> if the abstract origin attribute was emitted, and if not,
> Jim> then treat it like a non-inlined local variable. This would
> Jim> allow the user to still be able to look at the variable, but
> Jim> the output would be a little confusing since the debugger
> Jim> would claim that we have a variable that doesn't exist in the
> Jim> source code.
>
> I think either of these two alternatives would be fine.
>
> In my experience, using GDB to debug optimized, heavily inlined code
> really has never worked. You tend not to be able to see variables,
> you tend to find that step/next work oddly, and often you end up
> jumping entirely out of the function spontaneously.
Just a note, for the "long run".
This is something i'm seriously working on currently. It's why I sent
patches to support location lists for dwarf2 (well, one of the reasons,
anyway).
I already have modified loop unrolling to keep track of the approriate
things so that when combined with a patch to start using location lists
for my modified range rtlin dwarf2out.c (I removed some useless things
from the range info,
since we no longer need to be tracking state for the register allocator,
just knowing enough to produce the debug info), and can successfully
handle location lists, and evaluation of them at runtiome, in gdb. So
when the IV gets split into 4, we still can print the right value at the
right place, although step and next are still a little confusing.
I'm working on that too, but it's a little trickier of a change (I can
already read and do some stuff with the call frame info, which is
basically necessary to be able to treat inline functions as if they had
their own frame), so it's taking time.
Obviously, i'm not shooting for the 3.0 timeframe, i just wanted to make
sure nobody thought the "long run" was 5 years from now, when it's
probably 7 or 8 months.
> > So, I guess I don't
think this will be a major inconvenience to > anyone, relative to the
current state.
>
> In the long run, we should do better, but it sounds like these changes
> would do the trick for GCC 3.0. At this point, we have to be looking
> for minimalist solutions.
>
> Thanks,
>
> --
> Mark Mitchell mark@codesourcery.com
> CodeSourcery, LLC http://www.codesourcery.com
>
More information about the Gcc
mailing list