[RFA/RFC] Replace call_ptrace and ptrace_wait in inf-ptrace.c

Mark Kettenis
2004-09-20T19:14:44Z

This is another step in the direction of eliminating the need for both
inf-ptrace.c and infptrace.c. It eliminates the calls to call_ptrace
and ptrace_wait.

Andrew has recently suggested that we'd want debugging support for the
ptrace(2) interface, which could be implemented by using call_ptrace()
unconditionally. That, however, is a bad idea, since this makes it
impossible for the compiler to properly typecheck the arguments to
ptrace(). Hence the removal of call_ptrace() usage.

In inf_ptrace_kill_inferior, I just replaced ptrace_wait() with
wait(). Calling target_post_wait here seems inappropriate.

If nobody objetcs, I'll check this in later this week.

Mark

Index: ChangeLog
from Mark Kettenis <kettenis@gnu.org>

* inf-ptrace.c (inf_ptrace_kill_inferior): Call ptrace directly
instead of call_ptrace. Call wait directly instead of
ptrace_wait.
(inf_ptrace_me): Call ptrace directly instead of call_ptrace.
(inf_ptrace_wait): Inline ptrace_wait call.

Index: inf-ptrace.c
===================================================================
RCS file: /cvs/src/src/gdb/inf-ptrace.c,v
retrieving revision 1.2
diff -u -p -r1.2 inf-ptrace.c
--- inf-ptrace.c 16 Sep 2004 19:54:18 -0000 1.2
+++ inf-ptrace.c 20 Sep 2004 18:58:17 -0000
@@ -55,8 +55,8 @@ inf_ptrace_kill_inferior (void)

The kill call causes problems under hpux10, so it's been removed;
if this causes problems we'll deal with them as they arise. */
- call_ptrace (PT_KILL, pid, (PTRACE_TYPE_ARG3) 0, 0);
- ptrace_wait (null_ptid, &status);
+ ptrace (PT_KILL, pid, (PTRACE_TYPE_ARG3) 0, 0);
+ wait (&status);
target_mourn_inferior ();
}

@@ -255,7 +255,8 @@ inf_ptrace_wait (ptid_t ptid, struct tar
attached process. */
set_sigio_trap ();

- pid = ptrace_wait (inferior_ptid, &status);
+ pid = wait (&status);
+ target_post_wait (pid_to_ptid (pid), status);

save_errno = errno;

@@ -433,7 +434,7 @@ static void
inf_ptrace_me (void)
{
/* "Trace me, Dr. Memory!" */
- call_ptrace (0, 0, (PTRACE_TYPE_ARG3) 0, 0);
+ ptrace (0, 0, (PTRACE_TYPE_ARG3) 0, 0);
}

/* Stub function which causes the GDB that runs it, to start ptrace-ing