Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Daniel Jacobowitz <drow@false.org>
To: Wu Zhou <woodzltc@cn.ibm.com>
Cc: Manoj Iyer <manjo@austin.ibm.com>, gdb-patches@sources.redhat.com
Subject: Re: [RFC] gdb.server testcases (resend)
Date: Mon, 23 May 2005 18:26:00 -0000	[thread overview]
Message-ID: <20050523123820.GB23940@nevyn.them.org> (raw)
In-Reply-To: <Pine.LNX.4.63.0505230530360.22761@plinuxt18.cn.ibm.com>

On Mon, May 23, 2005 at 06:57:48AM -0700, Wu Zhou wrote:
> 
> > Yes, this will not work.  The correct way to handle this is to wait
> > until I have implemented the available target features proposal I've
> > posted on gdb@, and then I can make gdbserver inform GDB that 64-bit
> > registers are available so that it will expect them.
> 
> So you are going to add a command for gdbserver to notify remote gdb 
> the availability of 64-bit registers?  That is good.  But I am also
> thinking of other ways.  The first solution I thought of is to let 
> gdbserver choose which set of registers to use according to the
> arch (32-bit or 64-bit) of the debuggee.  The other solution I could 
> thought of is to let host-side gdb accept 64-bit register as well.
> I even tried some coding with the second method.  It seems that it 
> worked sorta, at least I can set breakpoint, continue the process 
> and so on.  But I did met problems with "next" and "step" commands,
> which didn't go on with executing the process at all.  
> 
> Because I am not that familar with the code of gdb/gdbserver, so I
> am not very sure where to find the root cause of these problems.  I
> am also not sure whether these two methods are workable?  Would you
> please help evaluate this?  If it is really workable, what is the 
> pros and cons of these methods compared to your proposal?  Thanks 
> a lot! 

Don't do that.  Please go read my proposal on gdb@, paying particular
attention to the description of the MIPS execution environment.  The
reason to always provide 64-bit registers if they are available is that
they are physically present; the upper 32 bits can affect the behavior
of the program in some cases.  So not displaying them can be very bad!

> That SIGFPE error disappeared after applying your patch to latest
> GDB cvs tree.  But I met with another strange problem when debugging
> gdb.base/break, which defines the following function:
> 
> int factorial (value)
> int value;
> #endif
> {
>   if (value > 1) {  /* set breakpoint 7 here */
>         value *= factorial (value - 1);
>     }
>     return (value); /* set breakpoint 19 here */
> }
> 
> normally factorial(6) will recursively call itself 5 times and return
> 720.  However while using 64-bit gdbserver on 64-bit binary, it doesn't
> call factorial(5) at all, return directly 6 as the result.
> 
> I am suspecting that "value > 1" doesn't get executed, so I change the
> conditional statement to "if (value - 1)", it worked!  So it turn out
> that "value > 1" always return 0 in this running context.  That is really
> odd.  Any clues you could thought of?  Thanks in advance.  

Um... your compiler must be broken, then.

-- 
Daniel Jacobowitz
CodeSourcery, LLC


  reply	other threads:[~2005-05-23 12:38 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-05-19 14:46 Wu Zhou
2005-05-19 17:52 ` Manoj Iyer
2005-05-28 22:51   ` [commit] gdbserver for powerpc64-linux Daniel Jacobowitz
2005-05-22 20:40 ` [RFC] gdb.server testcases (resend) Daniel Jacobowitz
2005-05-22 21:01   ` Daniel Jacobowitz
2005-05-23 11:21   ` Wu Zhou
2005-05-23 18:26     ` Daniel Jacobowitz [this message]
2005-05-24  4:17       ` Wu Zhou
2005-05-24  8:29         ` Daniel Jacobowitz
  -- strict thread matches above, loose matches on Subject: below --
2005-05-17  2:38 Manoj Iyer
2005-05-17 19:02 ` Manoj Iyer
2005-05-18  1:45 ` Daniel Jacobowitz
2005-05-18  9:52   ` Manoj Iyer
2005-05-18 16:01     ` Daniel Jacobowitz
2005-05-18 16:29       ` Manoj Iyer
2005-05-18 18:08         ` Daniel Jacobowitz
2005-05-18 22:08           ` Manoj Iyer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20050523123820.GB23940@nevyn.them.org \
    --to=drow@false.org \
    --cc=gdb-patches@sources.redhat.com \
    --cc=manjo@austin.ibm.com \
    --cc=woodzltc@cn.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox