отслеживать системные вызовы и сигналы (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.