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

Reply via email to