Commit 3454e4b463e6c22c7ea8c5461ef5a077f4650a54 introduced a bug: sometimes, TRACECLONE/TRACE[V]FORK opts were not set. The check (tcp->parent == NULL) in old code was meant to check "if we are not a child created by auto-attach" - in this case, options need to be set on the child; otherwise they are inherited and do not need to be set. I misunderstood the check and if tcp->parent is not NULL, I was setting only ptrace_setoptions_for_all bits. This change fixes the problem. Since the fixed logic makes it unnecessary to keep two sets of options in separate variables, I merge them back into one variable, ptrace_setoptions. * defs.h: Merge ptrace_setoptions_followfork and ptrace_setoptions_for_all into one variable, ptrace_setoptions. * strace.c: Likewise. (test_ptrace_setoptions_followfork): Use ptrace_setoptions variable. (test_ptrace_setoptions_for_all): Likewise. (main): Likewise. * process.c (internal_fork): Likewise. (internal_exec): Likewise. * strace.c (trace): Fix the bug where different options were set depending on "tcp->parent == NULL" condition. Add a comment which makes it more clear why this condition is checked. Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
This is strace 4.0, a system call tracer for SunOS 4.x, Linux, System V release 4, Solaris 2.x and Irix 5.x. strace is released under a Berkeley-style license at the request of Paul Kranenburg; see the file COPYRIGHT for details. Read the INSTALL file for generic instructions on how to install strace. If configure cannot guess your system configuration, you can specify it on the command line after the other options like this: ./configure --prefix=/usr i486-linux A single sunos4.1 binary should work on all the sun4, sun4c and sun4m kernel architectures. Let me know if sun4d doesn't work. Other i486-*-sysv4 systems may work with little or no tweaking. See the file NEWS for information on what has changed in recent versions. See the file PORTING if you like strace but it doesn't work on an operating system you use frequently. See the file CREDITS to see who has contributed to strace. See the file TODO if you feel like helping out. You can get the latest version of strace from its homepage at http://sourceforge.net/projects/strace/ . Please send bug reports and enhancements to the strace mailinglist at strace-devel@lists.sourceforge.net, or directly to Wichert Akkerman <wakkerma@debian.org>
Description
Languages
C
92.2%
Shell
3.4%
M4
1.4%
Makefile
0.8%
Roff
0.7%
Other
1.5%