Hi all, while trying to strace nginx (http://nginx.org/), using strace -f, I realized that strace fails to trace a forked child process.
As you can see in the trace below, process 13644 forks a new child 13645. 13644 and 13643 then exit and the new process 13645 does not get traced. As far as I have understood the strace source code, the reason may be that all parent processes exit before 16345 has executed any single system call. Am I doing something wrong? Is this behaviour intended? Is it a bug? Thank you in advance, Florian Trace: 13644 rt_sigaction(SIGHUP, {0x8065cb0, [], 0}, NULL, 8) = 0 13644 rt_sigaction(SIGUSR1, {0x8065cb0, [], 0}, NULL, 8) = 0 13644 rt_sigaction(SIGWINCH, {0x8065cb0, [], 0}, NULL, 8) = 0 13644 rt_sigaction(SIGTERM, {0x8065cb0, [], 0}, NULL, 8) = 0 13644 rt_sigaction(SIGQUIT, {0x8065cb0, [], 0}, NULL, 8) = 0 13644 rt_sigaction(SIGUSR2, {0x8065cb0, [], 0}, NULL, 8) = 0 13644 rt_sigaction(SIGALRM, {0x8065cb0, [], 0}, NULL, 8) = 0 13644 rt_sigaction(SIGINT, {0x8065cb0, [], 0}, NULL, 8) = 0 13644 rt_sigaction(SIGIO, {0x8065cb0, [], 0}, NULL, 8) = 0 13644 rt_sigaction(SIGCHLD, {0x8065cb0, [], 0}, NULL, 8) = 0 13644 rt_sigaction(SIGSYS, {SIG_IGN, [], 0}, NULL, 8) = 0 13644 rt_sigaction(SIGPIPE, {SIG_IGN, [], 0}, NULL, 8) = 0 13644 clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xb727e728) = 13645 13644 exit_group(0) = ? 13644 +++ exited with 0 +++ 13643 <... select resumed> ) = ? ERESTARTNOHAND (To be restarted if no handler) 13643 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=13644, si_status=0, si_utime=0, si_stime=0} --- 13643 write(6, "\21", 1) = 1 13643 rt_sigreturn() = -1 EINTR (Interrupted system call) 13643 select(6, [3 5], [], NULL, NULL) = 1 (in [5]) 13643 read(5, "\21", 1) = 1 13643 waitpid(13644, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG|WSTOPPED) = 13644 13643 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 13643 getuid32() = 0 13643 time(NULL) = 1372776660 13643 send(7, "<86>Jul 2 16:51:00 sudo: pam_un"..., 77, MSG_NOSIGNAL) = 77 13643 geteuid32() = 0 13643 stat64("/run/user", {st_mode=S_IFDIR|0755, st_size=160, ...}) = 0 13643 open("/run/user/.www.lock", O_RDWR) = 4 13643 flock(4, LOCK_EX) = 0 13643 fcntl64(4, F_GETFL) = 0x2 (flags O_RDWR) 13643 fstat64(4, {st_mode=S_IFREG|0600, st_size=2, ...}) = 0 13643 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb738c000 13643 _llseek(4, 0, [0], SEEK_CUR) = 0 13643 read(4, "2\n", 4096) = 2 13643 _llseek(4, 2, [2], SEEK_SET) = 0 13643 ftruncate(4, 0) = 0 13643 _llseek(4, -2, [0], SEEK_CUR) = 0 13643 write(4, "1\n", 2) = 2 13643 close(4) = 0 13643 socket(PF_NETLINK, SOCK_RAW, 9) = 4 13643 fcntl64(4, F_SETFD, FD_CLOEXEC) = 0 13643 readlink("/proc/self/exe", "/usr/bin/sudo", 4096) = 13 13643 sendto(4, "x\0\0\0R\4\5\0\3\0\0\0\0\0\0\0op=PAM:session_c"..., 120, 0, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 120 13643 poll([{fd=4, events=POLLIN}], 1, 500) = 1 ([{fd=4, revents=POLLIN}]) 13643 recvfrom(4, "$\0\0\0\2\0\0\0\3\0\0\0K5\0\0\0\0\0\0x\0\0\0R\4\5\0\3\0\0\0"..., 8988, MSG_PEEK|MSG_DONTWAIT, {sa_family=AF_NETLINK, pid=0, groups=00000000}, [12]) = 36 13643 recvfrom(4, "$\0\0\0\2\0\0\0\3\0\0\0K5\0\0\0\0\0\0x\0\0\0R\4\5\0\3\0\0\0"..., 8988, MSG_DONTWAIT, {sa_family=AF_NETLINK, pid=0, groups=00000000}, [12]) = 36 13643 close(4) = 0 13643 open("/etc/security/pam_env.conf", O_RDONLY|O_LARGEFILE) = 4 13643 fstat64(4, {st_mode=S_IFREG|0644, st_size=2980, ...}) = 0 13643 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7386000 13643 read(4, "#\n# This is the configuration fi"..., 4096) = 2980 13643 read(4, "", 4096) = 0 13643 close(4) = 0 13643 munmap(0xb7386000, 4096) = 0 13643 open("/etc/environment", O_RDONLY|O_LARGEFILE) = 4 13643 fstat64(4, {st_mode=S_IFREG|0644, st_size=96, ...}) = 0 13643 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7386000 13643 read(4, "PATH=\"/usr/local/sbin:/usr/local"..., 4096) = 96 13643 read(4, "", 4096) = 0 13643 close(4) = 0 13643 munmap(0xb7386000, 4096) = 0 13643 open("/etc/security/pam_env.conf", O_RDONLY|O_LARGEFILE) = 4 13643 fstat64(4, {st_mode=S_IFREG|0644, st_size=2980, ...}) = 0 13643 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7386000 13643 read(4, "#\n# This is the configuration fi"..., 4096) = 2980 13643 read(4, "", 4096) = 0 13643 close(4) = 0 13643 munmap(0xb7386000, 4096) = 0 13643 open("/etc/default/locale", O_RDONLY|O_LARGEFILE) = 4 13643 fstat64(4, {st_mode=S_IFREG|0644, st_size=19, ...}) = 0 13643 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7386000 13643 read(4, "LANG=\"en_US.UTF-8\"\n", 4096) = 19 13643 read(4, "", 4096) = 0 13643 close(4) = 0 13643 munmap(0xb7386000, 4096) = 0 13643 socket(PF_NETLINK, SOCK_RAW, 9) = 4 13643 fcntl64(4, F_SETFD, FD_CLOEXEC) = 0 13643 readlink("/proc/self/exe", "/usr/bin/sudo", 4096) = 13 13643 sendto(4, "p\0\0\0P\4\5\0\4\0\0\0\0\0\0\0op=PAM:setcred a"..., 112, 0, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 112 13643 poll([{fd=4, events=POLLIN}], 1, 500) = 1 ([{fd=4, revents=POLLIN}]) 13643 recvfrom(4, "$\0\0\0\2\0\0\0\4\0\0\0K5\0\0\0\0\0\0p\0\0\0P\4\5\0\4\0\0\0"..., 8988, MSG_PEEK|MSG_DONTWAIT, {sa_family=AF_NETLINK, pid=0, groups=00000000}, [12]) = 36 13643 recvfrom(4, "$\0\0\0\2\0\0\0\4\0\0\0K5\0\0\0\0\0\0p\0\0\0P\4\5\0\4\0\0\0"..., 8988, MSG_DONTWAIT, {sa_family=AF_NETLINK, pid=0, groups=00000000}, [12]) = 36 13643 close(4) = 0 13643 munmap(0xb7387000, 16504) = 0 13643 munmap(0xb72c4000, 107008) = 0 13643 munmap(0xb727b000, 201052) = 0 13643 munmap(0xb7383000, 8220) = 0 13643 munmap(0xb7380000, 8228) = 0 13643 munmap(0xb737c000, 12408) = 0 13643 munmap(0xb7376000, 20824) = 0 13643 munmap(0xb72c0000, 12408) = 0 13643 munmap(0xb72bc000, 12404) = 0 13643 munmap(0xb72b0000, 45420) = 0 13643 munmap(0xb7277000, 12416) = 0 13643 munmap(0xb7212000, 12400) = 0 13643 munmap(0xb7216000, 299836) = 0 13643 exit_group(0) = ? 13643 +++ exited with 0 +++ ------------------------------------------------------------------------------ This SF.net email is sponsored by Windows: Build for Windows Store. http://p.sf.net/sfu/windows-dev2dev _______________________________________________ Strace-devel mailing list Strace-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/strace-devel