summaryrefslogtreecommitdiffstats
path: root/gdb/lynx-nat.c
diff options
context:
space:
mode:
authorStu Grossman <grossman@cygnus>1994-01-22 20:34:37 +0000
committerStu Grossman <grossman@cygnus>1994-01-22 20:34:37 +0000
commite90445c997145c596588991a173d53e1a015e61a (patch)
treee7b52ad6488765c07ce8aafe7604a08f43529646 /gdb/lynx-nat.c
parent3f2255e7f87132dd8edca7f15842eb15bf9b4b03 (diff)
downloadppe42-binutils-e90445c997145c596588991a173d53e1a015e61a.tar.gz
ppe42-binutils-e90445c997145c596588991a173d53e1a015e61a.zip
* lynx-nat.c (fetch_core_registers): Load the I & L regs for the
Sparc from the stack.
Diffstat (limited to 'gdb/lynx-nat.c')
-rw-r--r--gdb/lynx-nat.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/gdb/lynx-nat.c b/gdb/lynx-nat.c
index 66e0d25c9c..78cfecbb77 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
}
OpenPOWER on IntegriCloud