This is strace, a system call tracer for Linux.

strace is released under a Berkeley-style license at the request
of Paul Kranenburg.

See the file CREDITS for a list of authors and other contributors.
See the file INSTALL for compilation and installation instructions.
See the file NEWS for information on what has changed in recent versions.

The project's homepage is at
	https://sourceforge.net/projects/strace/

strace has a mailing list:
	strace-devel@lists.sourceforge.net.

System requirements:
	* Linux kernel >= 2.6.18 is recommended.  Older versions might still work
	  but they haven't been thoroughly tested with this release.
	* Linux kernel >= 2.5.46 is required.
	  Older versions without a decent PTRACE_SETOPTIONS support will not work.
	* On mips, linux kernel >= 2.6.15 is required.
	  Older versions without a decent PTRACE_GETREGS support will not work.
	* On s390 and s390x, linux kernel >= 2.6.27 is required.
	  Older versions without a decent PTRACE_GETREGSET support will not work.
