* rs6000-nat.c (exec_one_dummy_insn): Rework to avoid
authorJeff Law <law@redhat.com>
Fri, 19 Jan 1996 08:00:39 +0000 (08:00 +0000)
committerJeff Law <law@redhat.com>
Fri, 19 Jan 1996 08:00:39 +0000 (08:00 +0000)
ptrace bug in aix4.1.3 on the rs6000.
Fixes inferior function call problem on rs6000-ibm-aix4.

gdb/ChangeLog
gdb/rs6000-nat.c

index dd724980f7df1ace43aff74e351965261cd73ced..9c92af761772edb282f8e5f2dbf77673ca645c2c 100644 (file)
@@ -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.
index 47bfe2d415085c33561e535b1872840c9e0b16fb..8293b56871ae7a7dc12fba1b35aa9545c142d281 100644 (file)
@@ -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");