отслеживать системные вызовы и сигналы (trace system calls and signals)
История (History)
The original strace
was written by Paul Kranenburg for SunOS and
was inspired by its trace
utility. The SunOS version of strace
was ported to Linux and enhanced by Branko Lankester, who also
wrote the Linux kernel support. Even though Paul released strace
2.5 in 1992, Branko's work was based on Paul's strace
1.5 release
from 1991. In 1993, Rick Sladkey merged strace
2.5 for SunOS and
the second release of strace
for Linux, added many of the
features of truss
(1) from SVR4, and produced an strace
that
worked on both platforms. In 1994 Rick ported strace
to SVR4 and
Solaris and wrote the automatic configuration support. In 1995
he ported strace
to Irix and tired of writing about himself in
the third person.
Beginning with 1996, strace
was maintained by Wichert Akkerman.
During his tenure, strace
development migrated to CVS; ports to
FreeBSD and many architectures on Linux (including ARM, IA-64,
MIPS, PA-RISC, PowerPC, s390, SPARC) were introduced. In 2002,
the burden of strace
maintainership was transferred to Roland
McGrath. Since then, strace
gained support for several new Linux
architectures (AMD64, s390x, SuperH), bi-architecture support for
some of them, and received numerous additions and improvements in
syscalls decoders on Linux; strace
development migrated to git
during that period. Since 2009, strace
is actively maintained by
Dmitry Levin. strace
gained support for AArch64, ARC, AVR32,
Blackfin, Meta, Nios II, OpenRISC 1000, RISC-V, Tile/TileGx,
Xtensa architectures since that time. In 2012, unmaintained and
apparently broken support for non-Linux operating systems was
removed. Also, in 2012 strace
gained support for path tracing
and file descriptor path decoding. In 2014, support for stack
traces printing was added. In 2016, syscall fault injection was
implemented.
For the additional information, please refer to the NEWS
file and
strace
repository commit log.