Re: [RFC]: patch #2 for Sun C compiled target programs

Michael Mueller
2004-06-21T15:05:05Z

Mark Kettenis wrote:
> Date: Fri, 18 Jun 2004 19:21:13 +0200
> From: Michael Mueller <m.mueller99@kay-mueller.de>
>
> For Sun C compiled 64 bit target programs "print localvar" does not work
> (PR gdb/1669).
>
> I verified this against these compiler versions:
>
> Sun C 5.5 2003/03/12
> Forte Developer 7 C 5.4 2002/03/09
> Sun WorkShop 6 update 2 C 5.3 2001/05/15
> Sun WorkShop 6 2000/04/07 C 5.1
>
> Would it be difficult for you to test with GCC too?

I tested with gcc 3.4 and found no problem.

> Sorry but that change is unacceptable. It's an obvious hack and might
> break other targets. It's not at all clear what values are supposed
> to be sign-extended and what values are not, as mentioned in the
> thread cited by you.

I did not expect this. Of curse it's just a hack. Sorry for the
misunderstanding.

>
> The real problem is that dbxread.c was initially written as 32-bit
> only code. The sign-extension problem you're seeing here can also be
> interpreted as a 64-bit-dirty issue.

So how can it be fixed?

>
> *** Problem 2 *************************************************
>
> Function sparc64_frame_base_address in sparc64-tdep.c needs to be fixed:
>
> /* ??? Should we take BIAS into account here? */
> return cache->base;
>
>
> The answer to the question in comment is yes, see the appended patch.
>
> That sounds reasonable. I'll commit that bit if it works with
> GCC/DWARF too.

I debugged gcc3.4/dwarf. It does not call sparc64_frame_base_address. (I
assume dwarf uses a location expression of it's own to describe a fp
based address + BIAS as the location of a stack variable.)

>
> Mark
>