aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Gilmore <gnu@cygnus>1992-09-18 07:40:15 +0000
committerJohn Gilmore <gnu@cygnus>1992-09-18 07:40:15 +0000
commit997cc2c0a3ca76b3da1489ce530df5d0c3a46a2c (patch)
tree8c268a054c7bdba489d21b96764ef356032c8459
parent2ec3d07cc720e9d81ee3d174829d6231cecbebf1 (diff)
downloadgdb-997cc2c0a3ca76b3da1489ce530df5d0c3a46a2c.zip
gdb-997cc2c0a3ca76b3da1489ce530df5d0c3a46a2c.tar.gz
gdb-997cc2c0a3ca76b3da1489ce530df5d0c3a46a2c.tar.bz2
Preliminary cleanup for splitting host/native/target.
* infptrace.c (child_resume): Don't deal with NO_SINGLE_STEP here; it is dealt with at a gdb-target-independent level. * rs6000-tdep.c (single_step): Don't call ptrace, we are a high toned routine. Fix return type to void.
-rw-r--r--gdb/ChangeLog9
-rw-r--r--gdb/infptrace.c11
-rw-r--r--gdb/rs6000-tdep.c11
3 files changed, 19 insertions, 12 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 63e7cc3..e3e5212 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -26,6 +26,15 @@ Wed Sep 16 17:00:07 1992 John Gilmore (gnu@cygnus.com)
alldeps.mak files.
(assorted): Update to catch straggler files when building gdb.tar.Z.
+Tue Sep 15 01:18:50 1992 John Gilmore (gnu@cygnus.com)
+
+ Preliminary cleanup for splitting host/native/target.
+
+ * infptrace.c (child_resume): Don't deal with NO_SINGLE_STEP
+ here; it is dealt with at a gdb-target-independent level.
+ * rs6000-tdep.c (single_step): Don't call ptrace, we are a
+ high toned routine. Fix return type to void.
+
Mon Sep 14 19:20:43 1992 Stu Grossman (grossman at cygnus.com)
* energize.c (pty_to_kernel): Must check for EAGAIN as
diff --git a/gdb/infptrace.c b/gdb/infptrace.c
index 3856b36..87178cd 100644
--- a/gdb/infptrace.c
+++ b/gdb/infptrace.c
@@ -120,14 +120,15 @@ child_resume (step, signal)
/* An address of (PTRACE_ARG3_TYPE)1 tells ptrace to continue from where
it was. (If GDB wanted it to start some other way, we have already
- written a new PC value to the child.) */
+ written a new PC value to the child.)
+
+ If this system does not support PT_STEP, a higher level function will
+ have called single_step() to transmute the step request into a
+ continue request (by setting breakpoints on all possible successor
+ instructions), so we don't have to worry about that here. */
if (step)
-#ifdef NO_SINGLE_STEP
- single_step (signal);
-#else
ptrace (PT_STEP, inferior_pid, (PTRACE_ARG3_TYPE) 1, signal);
-#endif
else
#ifdef AIX_BUGGY_PTRACE_CONTINUE
AIX_BUGGY_PTRACE_CONTINUE;
diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c
index 45d6af4..edae708 100644
--- a/gdb/rs6000-tdep.c
+++ b/gdb/rs6000-tdep.c
@@ -121,9 +121,9 @@ branch_dest (opcode, instr, pc, safety)
/* AIX does not support PT_STEP. Simulate it. */
-int
+void
single_step (signal)
-int signal;
+ int signal;
{
#define INSNLEN(OPCODE) 4
@@ -161,9 +161,7 @@ int signal;
}
one_stepped = 1;
- ptrace (PT_CONTINUE, inferior_pid, (PTRACE_ARG3_TYPE) 1, signal, 0);
- }
- else {
+ } else {
/* remove step breakpoints. */
for (ii=0; ii < 2; ++ii)
@@ -173,8 +171,7 @@ int signal;
one_stepped = 0;
}
- errno = 0;
- return 1;
+ errno = 0; /* FIXME, don't ignore errors! */
}