From e90445c997145c596588991a173d53e1a015e61a Mon Sep 17 00:00:00 2001 From: Stu Grossman Date: Sat, 22 Jan 1994 20:34:37 +0000 Subject: [PATCH] * lynx-nat.c (fetch_core_registers): Load the I & L regs for the Sparc from the stack. --- gdb/ChangeLog | 5 +++++ gdb/lynx-nat.c | 13 ++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index b9de4b19ffd..ecf03b31831 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +Sat Jan 22 12:29:13 1994 Stu Grossman (grossman at cygnus.com) + + * lynx-nat.c (fetch_core_registers): Load the I & L regs for the + Sparc from the stack. + Sat Jan 22 08:30:42 1994 Jim Kingdon (kingdon@deneb.cygnus.com) * remote-mips.c (mips_initialize): Clear mips_initializing via diff --git a/gdb/lynx-nat.c b/gdb/lynx-nat.c index 66e0d25c9c1..78cfecbb777 100644 --- a/gdb/lynx-nat.c +++ b/gdb/lynx-nat.c @@ -376,7 +376,7 @@ store_inferior_registers (regno) perror_with_name ("Sparc fetch_inferior_registers(ptrace)"); } } -#endif +#endif /* SPARC */ #ifndef SPARC @@ -427,7 +427,7 @@ fetch_inferior_registers (regno) ecp = registers_addr (inferior_pid); - for (regno = reglo; regno <= reghi && regmap[regno] != -1; regno++) + for (regno = reglo; regno <= reghi; regno++) { char buf[MAX_REGISTER_RAW_SIZE]; int ptrace_fun = PTRACE_PEEKTHREAD; @@ -474,7 +474,7 @@ store_inferior_registers (regno) ecp = registers_addr (inferior_pid); - for (regno = reglo; regno <= reghi && regmap[regno] != -1; regno++) + for (regno = reglo; regno <= reghi; regno++) { int ptrace_fun = PTRACE_POKEUSER; @@ -603,4 +603,11 @@ fetch_core_registers (core_reg_sect, core_reg_size, which, reg_addr) for (regno = 0; regno < NUM_REGS; regno++) supply_register (regno, core_reg_sect + offsetof (st_t, ec) + regmap[regno]); + +#ifdef SPARC +/* Fetching this register causes all of the I & L regs to be read from the + stack and validated. */ + + fetch_inferior_registers (I0_REGNUM); +#endif }