aboutsummaryrefslogtreecommitdiff
path: root/gdb/rs6000-nat.c
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>1996-03-19 17:40:12 +0000
committerJeff Law <law@redhat.com>1996-03-19 17:40:12 +0000
commita466b86aac9e055dbaf4b1e5087deb52265ff8d5 (patch)
tree75b4bdb76c329d111e528f841a55f10caaa8220c /gdb/rs6000-nat.c
parenta912e811fc547a45cb1ea71e1cfb6ce9ee1843ff (diff)
downloadgdb-a466b86aac9e055dbaf4b1e5087deb52265ff8d5.zip
gdb-a466b86aac9e055dbaf4b1e5087deb52265ff8d5.tar.gz
gdb-a466b86aac9e055dbaf4b1e5087deb52265ff8d5.tar.bz2
* rs6000-nat.c (exec_one_dummy_insn): Don't clobber the
PC in the registers array. From Peter Schauer.
Diffstat (limited to 'gdb/rs6000-nat.c')
-rw-r--r--gdb/rs6000-nat.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gdb/rs6000-nat.c b/gdb/rs6000-nat.c
index 8293b56..b9ad387 100644
--- a/gdb/rs6000-nat.c
+++ b/gdb/rs6000-nat.c
@@ -231,6 +231,7 @@ exec_one_dummy_insn ()
char shadow_contents[BREAKPOINT_MAX]; /* Stash old bkpt addr contents */
unsigned int status, pid;
+ CORE_ADDR prev_pc;
/* We plant one dummy breakpoint into DUMMY_INSN_ADDR address. We assume that
this address will never be executed again by the real code. */
@@ -244,6 +245,7 @@ exec_one_dummy_insn ()
on. However, rs6000-ibm-aix4.1.3 seems to have screwed this up --
the inferior never hits the breakpoint (it's also worth noting
powerpc-ibm-aix4.1.3 works correctly). */
+ prev_pc = read_pc ();
write_pc (DUMMY_INSN_ADDR);
ptrace (PT_CONTINUE, inferior_pid, (PTRACE_ARG3_TYPE)1, 0, 0);
@@ -254,6 +256,7 @@ exec_one_dummy_insn ()
pid = wait (&status);
} while (pid != inferior_pid);
+ write_pc (prev_pc);
target_remove_breakpoint (DUMMY_INSN_ADDR, shadow_contents);
}