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

Michael Mueller m.mueller99@kay-mueller.de
Mon Jun 21 15:05:00 GMT 2004


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
> 



More information about the Gdb-patches mailing list