Denys Vlasenko f44cce48bb Fix regression introduced by "Properly handle real SIGTRAPs" change
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>
2011-06-21 14:34:10 +02:00
2011-03-14 15:39:36 +00:00
2011-02-25 16:53:50 +00:00
2011-06-09 15:16:01 +00:00
2011-06-09 18:28:02 +00:00
2011-03-14 15:32:38 +00:00
2011-06-07 12:13:24 +02:00
2011-04-07 19:58:10 +00:00
2009-07-08 21:01:21 +00:00
2002-03-31 18:43:00 +00:00
2011-03-15 15:46:52 +00:00
2011-06-13 23:03:11 +00:00
2009-09-18 12:07:03 +00:00
2011-06-07 12:13:24 +02:00
2011-06-13 21:58:43 +00:00
2011-06-07 12:13:24 +02:00
2011-06-07 12:13:24 +02:00
2011-03-14 15:39:36 +00:00
2011-06-13 21:58:43 +00:00
1999-02-19 00:21:36 +00:00
2009-02-23 08:07:45 +00:00
2009-07-08 21:01:21 +00:00
1999-02-19 00:21:36 +00:00
2010-07-17 17:46:28 +02:00
2011-06-13 21:58:43 +00:00
2009-09-18 12:07:03 +00:00
2011-06-07 12:13:24 +02:00
2011-03-14 15:39:36 +00:00
2011-06-07 12:13:24 +02:00
2011-06-18 11:38:51 +02:00
2009-09-18 12:07:03 +00:00
2011-06-07 12:13:24 +02:00
2010-02-04 22:40:57 +00:00
2001-07-10 13:48:44 +00:00
2011-06-07 12:13:24 +02:00
1999-02-19 00:21:36 +00:00

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
No description provided
Readme 17 MiB
Languages
C 92.2%
Shell 3.4%
M4 1.4%
Makefile 0.8%
Roff 0.7%
Other 1.5%