strace is a system call tracer, i.e. a debugging tool which prints out a trace of all the system calls made by a another process/program. The program to be traced need not be recompiled for this, so you can use it on binaries for which you don't have source.
System calls and signals are events that happen at the user/kernel interface. A close examination of this boundary is very useful for bug isolation, sanity checking and attempting to capture race conditions.
System calls and signals are events that happen at the user/kernel interface. A close examination of this boundary is very useful for bug isolation, sanity checking and attempting to capture race conditions.
Original maintainer | Steve McIntyre |
---|---|
Homepage | https://strace.io |
5.5



5.3


5.0


4.26



4.25

4.24

4.22

4.21


4.20


4.15


4.12

4.11

4.10

Distribution | Version | Since | Package | Installed | Packager | |
---|---|---|---|---|---|---|
![]() | zst | 5.5-1 | 2020-02-10 | 403 kiB | 1.53 MiB | Anatol Pomozov |
![]() | rpm | 4.12-9.el7 | 2020-01-07 | 459 kiB | 1.75 MiB | CentOS BuildSystem |
![]() | deb | 4.26-0.2 | 2019-02-06 | 877 kiB | 2 MiB | Steve McIntyre |
![]() | deb | 4.15-2 | 2017-11-10 | 521 kiB | 1.33 MiB | Steve McIntyre |
![]() | rpm | 4.22-1.fc28 | 2019-01-14 | 811 kiB | 3.47 MiB | Fedora Project |
![]() | rpm | 4.24-1.fc29 | 2019-01-14 | 932 kiB | 2.14 MiB | Fedora Project |
![]() | rpm | 4.24-1.fc29 | 2019-01-14 | 932 kiB | 2.14 MiB | Fedora Project |
![]() | rpm | 5.0-1.fc30 | 2019-06-17 | 975 kiB | 2.7 MiB | Fedora Project |
![]() | rpm | 5.3-1.fc31 | 2020-01-07 | 1.03 MiB | 2.24 MiB | Fedora Project |
![]() | rpm | 5.5-1.fc32 | 2020-02-08 | 1.08 MiB | 2.26 MiB | Fedora Project |
![]() | xz | 5.0-1 | 2019-04-03 | 348 kiB | 1.53 MiB | Anatol Pomozov |
![]() | xz | 5.0-1 | 2019-04-02 | 348 kiB | 1.53 MiB | Anatol Pomozov |
![]() | xz | 5.0-1 | 2019-03-26 | 348 kiB | 1.53 MiB | Anatol Pomozov |
![]() | rpm | 4.20-lp150.2.2 | 2019-01-17 | 321 kiB | 1.27 MiB | https://bugs.opensuse.org |
![]() | rpm | 4.20-lp151.3.3 | 2019-01-23 | 321 kiB | 1.27 MiB | https://bugs.opensuse.org |
![]() | rpm | 5.3-lp152.1.1 | 2020-01-07 | 395 kiB | 1.52 MiB | https://bugs.opensuse.org |
![]() | rpm | 4.10-5.3 | 2019-01-17 | 170 kiB | 572 kiB | http://bugs.opensuse.org |
![]() | rpm | 5.5-1.1 | 2020-02-20 | 374 kiB | 1.51 MiB | https://bugs.opensuse.org |
![]() | deb | 4.15-2ubuntu3 | 2017-11-10 | 222 kiB | 1.05 MiB | Ubuntu Developers |
![]() | deb | 4.21-1ubuntu1 | 2018-06-12 | 326 kiB | 1.38 MiB | Ubuntu Developers |
![]() | deb | 4.21-1ubuntu1 | 2019-01-14 | 326 kiB | 1.38 MiB | Ubuntu Developers |
![]() | deb | 4.25-0ubuntu1 | 2019-01-14 | 360 kiB | 1.51 MiB | Ubuntu Developers |
![]() | deb | 4.26-0.2ubuntu3 | 2019-06-17 | 351 kiB | 1.48 MiB | Ubuntu Developers |
![]() | deb | 4.26-0.2ubuntu3 | 2020-01-07 | 351 kiB | 1.48 MiB | Ubuntu Developers |
![]() | deb | 4.11-1ubuntu3 | 2017-11-10 | 175 kiB | 892 kiB | Ubuntu Developers |
Manual pages
strace(1)
strace - trace system calls and signals
strace-log-merge(1)
strace-log-merge - merge strace -ff -tt output
Latest updates

OpenSUSE Tumbleweed oss: Updated from 5.4-2.2 to 5.5-1.1
2020-02-20
- Update to strace 5.5
- Improvements
- Added -e trace=%creds option for tracing syscalls related to process credentials.
- Enhanced decoding of arch_prctl, keyctl, io_uring_register, io_uring_setup, and perf_event_open syscalls.
- Enhanced decoding of BPF_PROG_LOAD bpf syscall command.
- Updated decoding of clone3 syscall to match Linux 5.5.
- Implemented decoding of TCA_ACT_FLAGS and TCA_STATS_PKT64 netlink attributes.
- Updated lists of AUDIT_*, BPF_*, CLONE_*, KEY_*, KVM_*, PPC_PTRACE_*, SCTP_*, STATX_*, TIPC_*, V4L2_*, and *_MAGIC constants.
- Updated lists of ioctl commands from Linux 5.5.
- Enhanced manual page and "strace --help" output.
- Bug fixes
- Fixed stack trace printing for early syscalls when strace is configured to use libdw backend for stack tracing (addresses Fedora bug #1788636).
- Fixed stack trace caching when --seccomp-bpf option is specified.
- Fixed potentially unaligned access in decoder of SO_TIMESTAMP*_NEW control messages.
- Fixed decoding of NDA_LLADDR netlink neighbor table attribute.
- Fixed build of mpers support when CFLAGS contains -flto.
- Fixed build on no-MMU architectures.
- Fixed build with glibc-2.31 and Linux kernel headers < 5.3.
- Fixed tests for glibc-2.31.

Arch rolling testing/os: Version 5.5-1 removed
2020-02-10

Arch rolling extra/os: Updated from 5.4-1 to 5.5-1
2020-02-10

OpenSUSE Tumbleweed oss: Updated from 5.4-2.1 to 5.4-2.2
2020-02-09
- Use -ffat-lto-objects to work around mpers.sh failure

Fedora rawhide development/Everything-os: Updated from 5.3-1.fc32 to 5.5-1.fc32
2020-02-08
- v5.4 -> v5.5.

Arch rolling testing/os: Version 5.5-1 introduced
2020-02-06

Fedora 31 releases/Everything-os: Version 5.3-1.fc31 introduced
2020-01-07
- v5.2 -> v5.3.

OpenSUSE Leap 15.2 oss: Version 5.3-lp152.1.1 introduced
2020-01-07
- Update to strace 5.3
- Improvements
- Implemented usage of seccomp-bpf for stopping tracees only for filtered syscalls. Use --seccomp-bpf option to enable.
- Implemented decoding of pidfd_open and clone3 syscalls.
- Enhanced decoding of io_cancel, io_submit, s390_sthyi, and syslog syscalls.
- Enhanced decoding of NETLINK_ROUTE protocol.
- Implemented decoding of UNIX_DIAG_UID netlink attribute.
- Implemented decoding of WDIOC_* ioctl commands.
- Enchanced syscall count statistics: overhead is now applied per-call, added ability for sorting on errors field.
- Syscall delay injection and overhead values can now be supplied with time measure unit suffix and provided in IEEE 754 floating point format.
- Updated lists of AUDIT_*, BPF_*, ETH_*, KEYCTL_*, KVM_*, MAP_*, SO_*, TCP_*, V4L2_*, XDP_*, and *_MAGIC constants.
- Updated lists of ioctl commands from Linux 5.3.
- Enhanced manual page.
- Bug fixes
- Fixed syscall tampering on arc, avr32, csky, ia64, m68k, metag, mips, nios2, or1k, riscv, s390, s390x, sparc, sparc64, and tile architectures when PTRACE_GET_SYSCALL_INFO is in use.
- Fixed decoding of sockaddr_hci (AF_BLUETOOTH) addresses that lack hci_channel field.
- Fixed evdev ioctl bitset decoding.
- Fixed tests on alpha with Linux kernel headers 5.1+.
- Portability
- Removed support for decoding syscalls in range [1024...1079] on AArch64 architecture as this range has never been implemented in mainline kernel releases.

CentOS 7.7.1908 os: Version 4.12-9.el7 introduced
2020-01-07
- Patch files in tests-m32 and tests-mx32 as well. (#1600210)

Ubuntu 20.04 focal/main: Version 4.26-0.2ubuntu3 introduced
2020-01-07

OpenSUSE Tumbleweed oss: Updated from 5.4-1.1 to 5.4-2.1
2020-01-04
- Use -ffat-lto-objects to work around mpers.sh failure

OpenSUSE Tumbleweed oss: Updated from 5.3-1.1 to 5.4-1.1
2019-12-06
- Update to strace 5.4
- Improvements
- Implemented -DD and -DDD options that move strace into a separate process group and session, respectively.
- Enhanced seccomp-bpf tracee syscall filtering support by implementing new "binary match" BPF program generation strategy and automatically choosing the strategy that generates the shortest BPF program.
- Implemented decoding of BPF_BTF_GET_NEXT_ID bpf syscall command.
- Enhanced decoding of BPF_MAP_LOOKUP_ELEM bpf syscall command.
- Implemented PTP_CLOCK_GETCAPS2, PTP_EXTTS_REQUEST2, PTP_PEROUT_REQUEST2, PTP_ENABLE_PPS2, and PTP_SYS_OFFSET2 ioctl decoding.
- Updated lists of BPF_*, CAN_*, KEXEC_*, KVM_*, MADV_*, MSG_*, P_*, PR_*, PTP_*, SCTP_*, and V4L2_* constants.
- Implemented ability to build ARM EABI mpers support using a separate compiler on aarch64.
- Updated lists of ioctl commands from Linux 5.4.
- Enhanced manual page.
- Bug fixes
- Fixed -b execve when --seccomp-bpf option is specified.
- Fixed decoding of BPF_PROG_LOAD bpf syscall command.
- Fixed build on no-MMU architectures.
- Fixed build on antique systems that do not provide necessary definitions of AUDIT_ARCH_* constants.

Arch rolling testing/os: Version 5.4-1 removed
2019-12-04

Arch rolling extra/os: Updated from 5.3-1 to 5.4-1
2019-12-04

Arch rolling testing/os: Version 5.4-1 introduced
2019-11-30

OpenSUSE Tumbleweed oss: Updated from 5.2-2.1 to 5.3-1.1
2019-10-01
- Update to strace 5.3
- Improvements
- Implemented usage of seccomp-bpf for stopping tracees only for filtered syscalls. Use --seccomp-bpf option to enable.
- Implemented decoding of pidfd_open and clone3 syscalls.
- Enhanced decoding of io_cancel, io_submit, s390_sthyi, and syslog syscalls.
- Enhanced decoding of NETLINK_ROUTE protocol.
- Implemented decoding of UNIX_DIAG_UID netlink attribute.
- Implemented decoding of WDIOC_* ioctl commands.
- Enchanced syscall count statistics: overhead is now applied per-call, added ability for sorting on errors field.
- Syscall delay injection and overhead values can now be supplied with time measure unit suffix and provided in IEEE 754 floating point format.
- Updated lists of AUDIT_*, BPF_*, ETH_*, KEYCTL_*, KVM_*, MAP_*, SO_*, TCP_*, V4L2_*, XDP_*, and *_MAGIC constants.
- Updated lists of ioctl commands from Linux 5.3.
- Enhanced manual page.
- Bug fixes
- Fixed syscall tampering on arc, avr32, csky, ia64, m68k, metag, mips, nios2, or1k, riscv, s390, s390x, sparc, sparc64, and tile architectures when PTRACE_GET_SYSCALL_INFO is in use.
- Fixed decoding of sockaddr_hci (AF_BLUETOOTH) addresses that lack hci_channel field.
- Fixed evdev ioctl bitset decoding.
- Fixed tests on alpha with Linux kernel headers 5.1+.
- Portability
- Removed support for decoding syscalls in range [1024...1079] on AArch64 architecture as this range has never been implemented in mainline kernel releases.

Fedora rawhide development/Everything-os: Updated from 5.2-2.fc31 to 5.3-1.fc32
2019-09-29
- v5.2 -> v5.3.

Arch rolling testing/os: Version 5.3-1 removed
2019-09-27

Arch rolling extra/os: Updated from 5.2-1 to 5.3-1
2019-09-27

Arch rolling testing/os: Version 5.3-1 introduced
2019-09-26
Related packages
strace-debuginfo - Debug information for package strace
strace-debugsource - Debug sources for package strace