--- remote.c 2015-02-20 19:11:44.000000000 +0200 +++ remote-fixed.c 2015-08-12 20:00:14.966043900 +0300 @@ -6154,8 +6154,20 @@ buf_len = strlen (rs->buf); /* Further sanity checks, with knowledge of the architecture. */ - if (buf_len > 2 * rsa->sizeof_g_packet) - error (_("Remote 'g' packet reply is too long: %s"), rs->buf); + //if (buf_len > 2 * rsa->sizeof_g_packet) + // error (_("Remote 'g' packet reply is too long: %s"), rs->buf); + + if(buf_len > 2 * rsa->sizeof_g_packet) { + rsa->sizeof_g_packet = buf_len; + for(i = 0; i < gdbarch_num_regs(gdbarch); i++){ + if(rsa->regs->pnum == -1) + continue; + if(rsa->regs->offset >= rsa->sizeof_g_packet) + rsa->regs->in_g_packet = 0; + else + rsa->regs->in_g_packet = 1; + } + } /* Save the size of the packet sent to us by the target. It is used as a heuristic when determining the max size of packets that the