[patch] Hangs and/or multithreaded process left Stopped (T) on	CTRL-C of strace
    Roland McGrath 
    roland at redhat.com
       
    Thu May 24 09:54:00 UTC 2007
    
    
  
What is <unistd.h> for?
tcp->parent->pid is wrong when there are -f fork children (not threads).
I believe that with your patch:
	(sleep 5; exec sh -c 'sleep 10; sleep 10') & strace -f -p $!
	# wait > 5sec
	^C
will do a wrong tgkill to the sleep process, passing tgid of sh instead,
get ESRCH and block in wait4 having sent no SIGSTOP.
I think the tgid arg needs to be:
	(tcp->flags & TCB_CLONE_THREAD) ? tcp->parent->pid : tcp->pid
Thanks,
Roland
    
    
More information about the Strace-devel
mailing list