Bug 17060

Summary: AVR buglet in remote.c
Product: gdb Reporter: Tom Tromey <tromey>
Component: remoteAssignee: Not yet assigned to anyone <unassigned>
Status: RESOLVED DUPLICATE    
Severity: normal CC: pedro, qiyao
Priority: P2    
Version: HEAD   
Target Milestone: ---   
Host: Target:
Build: Last reconfirmed:

Description Tom Tromey 2014-06-16 17:38:09 UTC
In remote.c:remote_xfer_partial, I see:

  /* Note: a zero OFFSET and LEN can be used to query the minimum
     buffer size.  */
  if (offset == 0 && len == 0)
    return (get_remote_packet_size ());

I think this code is incorrect.  It doesn't return
an enum target_xfer_status constant.

This only occurs for TARGET_OBJECT_AVR.
Comment 1 Tom Tromey 2014-06-17 17:52:01 UTC
FAOD this code should probably just be removed.
I just don't have a decent way to test it.
Comment 2 Pedro Alves 2014-06-17 17:56:57 UTC
I agree.  This is currently AVR specific, and TARGET_OBJECT_AVR clearly doesn't make use of it, so it's dead.

I look through the history a while ago, and found out that that len==0 magic was there way before AVR was even supported.  It just ended up AVR specific by accident, as the function was updated over the years.
Comment 3 Sourceware Commits 2014-08-09 00:56:44 UTC
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gdb and binutils".

The branch, master has been updated
       via  dcd2e6ef22c3453b9322ad4b46fb7cc05810b7ee (commit)
      from  20c6f1e176f4139ed1e76d4256e70149e38c0820 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=dcd2e6ef22c3453b9322ad4b46fb7cc05810b7ee

commit dcd2e6ef22c3453b9322ad4b46fb7cc05810b7ee
Author: Yao Qi <yao@codesourcery.com>
Date:   Fri Aug 8 13:45:23 2014 +0800

    Fix PR remote/9053: remove dead code on query packet size
    
    The code becomes dead as GDB evolves.  In 2003, Andrew Cagney post patch
    https://sourceware.org/ml/gdb-patches/2003-10/msg00511.html to add target
    read/write partial methods.  They support query buffer size when both
    OFFSET and LEN is zero, and it was used in avr-tdep.c and kod.c.  Then,
    Daniel added target_read_object_alloc and avr-tdep.c switches to use that
    in patch https://sourceware.org/ml/gdb-patches/2006-07/msg00009.html
    From then on, GDB on longer queries the buffer size, so the code
    returning packet size in remote_xfer_partial became dead.
    
    PR 17060 is duplicated of PR 9053, so I mention the latter in the
    ChangeLog entry.  Rebuild GDB with this patch.  OK to apply?
    I'll mark PR 17060 as duplicated once the patch is applied.
    
    gdb:
    
    2014-08-09  Yao Qi  <yao@codesourcery.com>
    
    	PR remote/9053
    	* remote.c (remote_xfer_partial): Remove dead code.

-----------------------------------------------------------------------

Summary of changes:
 gdb/ChangeLog |    5 +++++
 gdb/remote.c  |    4 ----
 2 files changed, 5 insertions(+), 4 deletions(-)
Comment 4 Yao Qi 2014-08-09 00:58:24 UTC
It is duplicated of PR 9053.

*** This bug has been marked as a duplicate of bug 9053 ***