Hi,
I tried to use (caddr_t)1 in PT_DETACH, but the code just
failed. I'm confused. It just seems the execve is stopped. Maybe I'd read
through the kernel source code to figure out where the problem is.
Jiangyi
[EMAIL PROTECTED] (diman) writes:
> Hope your program not named "./test" ??
> I changed it to /bin/sh and it works just fine.
> It was hard to debug due to my own proggie bug :)
> bb.
>
>
> #include <unistd.h>
> #include <sys/types.h>
> #include <sys/ptrace.h>
>
> int main()
> {
> pid_t pid;
>
> if(!(pid=fork())) {
> /* child */
> ptrace(PT_TRACE_ME, 0, 0, 0);
> puts("child speaking");
> execve("./test", NULL, NULL); <---------- ??
> } else {
> wait(0);
> ptrace(PT_DETACH, pid, (caddr_t)1, 0); <---------- also
> exit(0);
> }
> }
>
>
>
>
>
> On Wed, 30 May 2001, Jiangyi Liu wrote:
>
> >
> > >
> > > If i understand ptrace(2) manual page correctly,
> > > you should use
> > > ptrace(PT_DETACH,pid,(caddr_t)1,0)
> > > instead of
> > > ptrace(PT_DETACH,pid,0,0) .
> > >
> >
> > If you read my first post again, you will know that indeed I've tried to use
>(caddr_t)1 but failed too.
> >
> > > BTW you code is *very hard to debug* on my 4.1.1 :)
> > > What your uname -a tells you?
> >
> > Why? My box is 4.3-STABLE.
> >
> > Jiangyi
> >
>
>
> To Unsubscribe: send mail to [EMAIL PROTECTED]
> with "unsubscribe freebsd-hackers" in the body of the message
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message