2003-12-06 Andrew Cagney <cagney@redhat.com>

* remote.c (remote_fetch_registers): For short packets, explicitly
	supply a zero value.  Use regcache_raw_supply.  Fix suggested by
	Jonathan Larmour.
This commit is contained in:
Andrew Cagney 2003-12-06 22:58:27 +00:00
parent 5266b69c16
commit 8ccc128739
2 changed files with 23 additions and 3 deletions

View file

@ -1,3 +1,9 @@
2003-12-06 Andrew Cagney <cagney@redhat.com>
* remote.c (remote_fetch_registers): For short packets, explicitly
supply a zero value. Use regcache_raw_supply. Fix suggested by
Jonathan Larmour.
2003-12-05 Jeff Johnston <jjohnstn@redhat.com>
* ia64-tdep.c (ia64_gdbarch_init): Set up the gdbarch long double

View file

@ -3558,9 +3558,23 @@ remote_fetch_registers (int regnum)
struct packet_reg *r = &rs->regs[i];
if (r->in_g_packet)
{
supply_register (r->regnum, regs + r->offset);
if (buf[r->offset * 2] == 'x')
set_register_cached (i, -1);
if (r->offset * 2 >= strlen (buf))
/* A short packet that didn't include the register's
value, this implies that the register is zero (and
not that the register is unavailable). Supply that
zero value. */
regcache_raw_supply (current_regcache, r->regnum, NULL);
else if (buf[r->offset * 2] == 'x')
{
gdb_assert (r->offset * 2 < strlen (buf));
/* The register isn't available, mark it as such (at
the same time setting the value to zero). */
regcache_raw_supply (current_regcache, r->regnum, NULL);
set_register_cached (i, -1);
}
else
regcache_raw_supply (current_regcache, r->regnum,
regs + r->offset);
}
}
}