This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
[RFA/RFC] Replace call_ptrace and ptrace_wait in inf-ptrace.c
- From: Mark Kettenis <kettenis at gnu dot org>
- To: cagney at gnu dot org, gdb-patches at sources dot redhat dot com
- Date: Mon, 20 Sep 2004 21:13:50 +0200 (CEST)
- Subject: [RFA/RFC] Replace call_ptrace and ptrace_wait in inf-ptrace.c
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