This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]