This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [RFC] Eliminate use of deprecated_register_bytes() from remote.c
On Fri, Apr 15, 2005 at 04:12:12PM -0700, Kevin Buettner wrote:
> On Fri, 15 Apr 2005 17:37:58 -0400
> Daniel Jacobowitz <drow@false.org> wrote:
>
> > On Fri, Apr 15, 2005 at 02:32:45PM -0700, Kevin Buettner wrote:
> > > This one seems almost obvious, but I'd like someone else to look it
> > > over before I check it in...
> > >
> > > * remote.c (init_remote_state): Eliminate use of
> > > deprecated_register_bytes().
> >
> > I'm pretty sure you need an if (regnum < NUM_REGS) on the second piece.
>
> I agree that that's the right thing to do, but I'm not convinced that
> will give us behavior equivalent to what we have now. Consider the
> following comment/code from regcache.c:
>
> /* FIXME: cagney/2002-05-22: Should only need to allocate space for
> the raw registers. Unfortunately some code still accesses the
> register array directly using the global registers[]. Until that
> code has been purged, play safe and over allocating the register
> buffer. Ulgh! */
> descr->sizeof_raw_registers = descr->sizeof_cooked_registers;
>
> The ``sizeof_raw_registers'' field is the value returned by
> deprecated_register_bytes(). So, it seems to me that we're presently
> setting rs->sizeof_g_packet to a value that's potentially larger than
> need be.
You are definitely right. That's an Ulgh indeed.
> I can think of no reason to continue to over-allocate space for g/G
> packets in remote.c so I'm happy with this patch instead (which adds
> the test that you wanted):
>
> * remote.c (init_remote_state): Eliminate use of
> deprecated_register_bytes().
This is fine with me.
--
Daniel Jacobowitz
CodeSourcery, LLC