diff options
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/rs6000-nat.c | 10 |
2 files changed, 14 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index dd72498..9c92af7 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +Fri Jan 19 00:59:53 1996 Jeffrey A Law (law@cygnus.com) + + * rs6000-nat.c (exec_one_dummy_insn): Rework to avoid + ptrace bug in aix4.1.3 on the rs6000. + Wed Jan 17 13:22:27 1996 Stan Shebs <shebs@andros.cygnus.com> * remote-hms.c (hms_ops): Add value for to_thread_alive. diff --git a/gdb/rs6000-nat.c b/gdb/rs6000-nat.c index 47bfe2d..8293b56 100644 --- a/gdb/rs6000-nat.c +++ b/gdb/rs6000-nat.c @@ -238,7 +238,15 @@ exec_one_dummy_insn () target_insert_breakpoint (DUMMY_INSN_ADDR, shadow_contents); errno = 0; - ptrace (PT_CONTINUE, inferior_pid, (PTRACE_ARG3_TYPE) DUMMY_INSN_ADDR, 0, 0); + + /* You might think this could be done with a single ptrace call, and + you'd be correct for just about every platform I've ever worked + 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). */ + write_pc (DUMMY_INSN_ADDR); + ptrace (PT_CONTINUE, inferior_pid, (PTRACE_ARG3_TYPE)1, 0, 0); + if (errno) perror ("pt_continue"); |