* remote.c (fetch_register_using_p): Recognize a register value

starting with 'x' as indicating an unfetchable register.
This commit is contained in:
Jim Blandy 2004-12-28 09:06:10 +00:00
parent 7d2a4abafe
commit 3f9a994c5e
2 changed files with 31 additions and 15 deletions

View File

@ -1,3 +1,8 @@
2004-12-28 Jim Blandy <jimb@redhat.com>
* remote.c (fetch_register_using_p): Recognize a register value
starting with 'x' as indicating an unfetchable register.
2004-12-27 Mark Kettenis <kettenis@gnu.org>
* config/mips/obsd64.mh (NATDEPFILES): Unwrap line.

View File

@ -3192,25 +3192,36 @@ fetch_register_using_p (int regnum)
p += hexnumstr (p, regnum);
*p++ = '\0';
remote_send (buf, rs->remote_packet_size);
if (buf[0] != 0 && buf[0] != 'E')
/* If the stub didn't recognize the packet, or if we got an error,
tell our caller. */
if (buf[0] == '\0' || buf[0] == 'E')
return 0;
/* If this register is unfetchable, tell the regcache. */
if (buf[0] == 'x')
{
p = buf;
i = 0;
while (p[0] != 0)
{
if (p[1] == 0)
{
error ("fetch_register_using_p: early buf termination");
return 0;
}
regp[i++] = fromhex (p[0]) * 16 + fromhex (p[1]);
p += 2;
}
regcache_raw_supply (current_regcache, regnum, regp);
regcache_raw_supply (current_regcache, regnum, NULL);
set_register_cached (regnum, -1);
return 1;
}
return 0;
/* Otherwise, parse and supply the value. */
p = buf;
i = 0;
while (p[0] != 0)
{
if (p[1] == 0)
{
error("fetch_register_using_p: early buf termination");
return 0;
}
regp[i++] = fromhex (p[0]) * 16 + fromhex (p[1]);
p += 2;
}
regcache_raw_supply (current_regcache, regnum, regp);
return 1;
}
static void