What's new in strace 4.10
Mar 7, 2015
- Improvements:
- Added -yy option to print protocol and address information associated with socket descriptors.
- Extended "-e read=set" and "-e write=set" options to cover sendmsg, recvmsg, sendmmsg, and recvmmsg syscalls.
- Implemented full 32-bit decoding of ioctl commands (addresses Debian bug #692913 and Fedora bug #902788).
- Implemented PTRACE_GETREGS API support on ia64.
- Implemented PTRACE_GETREGS API support on mips.
- Implemented PTRACE_GETREGSET API support on s390/s390x.
- Implemented decoding of getrandom and seccomp syscalls.
- Implemented full decoding of 64-bit capability sets.
- Implemented decoding of all prctl commands.
- Implemented decoding of parametrized ioctl commands.
- Implemented decoding of evdev ioctl commands.
- Implemented decoding of v4l ioctl commands.
- Implemented decoding of SG_IO v4 ioctl commands.
- Implemented decoding of FIFREEZE/FITHAW/FITRIM ioctl commands.
- Implemented decoding of FALLOC_FL_* fallocate flags.
- Implemented decoding of rt_sigreturn signal mask on aarch64, x32, and x86_64.
- Enhanced socket decoder to support bluetooth sockets.
- Enhanced decoding of unlisted ioctl commands.
- Enhanced decoding of getsockopt and setsockopt syscall.
- Enhanced decoding of sysinfo syscall.
- Enhanced decoding of struct cmsghdr.
- Enhanced decoding of wait status.
- Enhanced aio support on non-x86 architectures by using external libaio.h.
- Added O_TMPFILE to the list of recognized open mode flags.
- Updated the list of filesystem type constants that is used in decoding statfs family syscalls.
- Updated lists of CAP_*, PR_*, PTRACE_*, SCHED_*, SO_*, SOL_*, SWAP_FLAG_*, and TFD_* constants.
- Updated lists of signal constants from Linux 3.19.
- Updated lists of errno constants from Linux 3.19.
- Updated lists of ioctl commands from Linux 3.9.
- Added new syscall entries to match Linux 3.19.
- Bug fixes:
- Fixed various errors in mapping between syscall numbers and associated information like the number of syscall arguments, the name of syscall, and syscall decoder.
- Fixed quoting issues in printing descriptors, filenames, network interface names, struct utsname members, device/volume names of BLK* ioctl commands.
- Fixed uid_t/git_t decoding.
- Fixed potential out-of-bounds read issues in getdents/getdents64 decoders.
- Fixed potential open flags truncation on some architectures.
- Fixed decoding of struct ifreq.ifr_name.
- Fixed decoding of SIOCSIFNAME ioctl command.
- Fixed decoding of RENAME_* renameat2 flags.
- Fixed decoding of UTIME_NOW/UTIME_OMIT timeval structures.
- Fixed decoding of indirect ipc subcalls on some architectures.
- Fixed decoding of fanotify_mark syscall on 32-bit architectures.
- Fixed decoding of 32-bit stat structures on 64-bit architectures.
- Fixed decoding of 32-bit struct cmsghdr on 64-bit architectures.
- Fixed decoding of 32-bit preadv/pwritev offset on 64-bit architectures.
- Fixed decoding of sigreturn/rt_sigreturn signal mask on ia64, ppc, ppc64, sparc, sparc64, mips, and s390.
- Fixed instruction pointer output (-i option) on architectures that support several personalities.
- Fixed behaviour of "-e read=set" and "-e write=set" when read and write sets intersect.
- Fixed build on systems where struct sigaction has no sa_restorer member.
- Fixed build with uclibc and musl libc.
- Portability:
- 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.
New in strace 4.9 (Dec 5, 2014)
- Changes in behavior:
- Disabled OABI support on ARM EABI systems by default, added --enable-arm-oabi option to enable it at configure time.
- Improvements:
- Added experimental -k option to print stack trace after each traced syscall.
- Added -w option to produce stats on syscall latency. (addresses Debian bug #457497).
- Added ARC architecture support.
- Added PTRACE_GETREGS API support on PowerPC.
- Enhanced Bionic libc and musl libc support.
- Enhanced tracing of x86 personality processes on x86_64 and x32.
- Enhanced tracing of ARM personality processes on AArch64.
- Enhanced 32/64bit personality detection on PowerPC.
- Implemented decoding of add_key, ioprio_get, ioprio_set, kexec_load, keyctl, renameat2, and request_key syscalls.
- Robustified decoding of select, pselect, and io_submit syscalls.
- Enhanced decoding of delete_module, fanotify_init, fanotify_mark, fcntl, setdomainname, sethostname, setns, and sync_file_range syscalls.
- Enhanced decoding of signal bitmasks.
- Enhanced decoding of file descriptors.
- Enhanced siginfo_t decoding.
- Enhanced PF_NETLINK decoding.
- Updated CLOCK_* constants (addresses Fedora bug #1088455).
- Added new syscall entries to match Linux 3.16.
- Bug fixes:
- Added shmat and shmdt to the set of memory mapping related syscalls.
- Fixed detaching from stopped processes.
- Fixed fanotify_mark decoding on 32bit architectures.
- Fixed offset decoding in preadv and pwritev syscalls.
- Fixed select decoding for glibc in _FORTIFY_SOURCE mode.
- Fixed decoding of epoll_ctl syscall with EPOLL_CTL_DEL argument.
- Fixed build when and conflict (addresses Fedora bug #993384).
- Miscellaneous corrections in the manual page. (Addresses Debian bug #725987).
New in strace 4.8 (Feb 13, 2014)
- Changes in behavior:
- In case of normal strace termination, when the trace output is redirected to a pipe, strace now closes it and waits for the pipe process termination before exit.
- Improvements:
- Implemented tracing using PTRACE_SEIZE API (when available).
- Implemented more reliable PTRACE_GETREGSET-based process personality detection on x86-64 and x32 (when available).
- Added -e trace=memory option for tracing memory mapping related syscalls.
- Documented -b option.
- Allowed exit status messages to be suppressed by giving -q option twice.
- Added AArch64 architecture support (addresses Debian bug #693074 and Fedora bug #969858).
- Added support for OpenRISC 1000, Meta, and Xtensa architectures.
- Added tilegx personality support for Tile.
- Enhanced support of NOMMU architectures.
- Enhanced decoding of getdents, mmap, perf_event_open, ptrace, and quotactl syscalls.
- Added new syscall entries to match Linux 3.9.
- Regenerated the list of common ioctl names from Linux 3.9.
- Updated the list of errno constants.
- Updated lists of AF_*, MADV_*, MAP_*, MSG_*, MS_*, PF_*, PR_*, PTRACE_O_*, and TCP_* constants.
- Implemented decoding of UBI ioctls.
- Removed redundant "*32" ioctl names.
- Bug fixes:
- Fixed ERESTARTNOINTR leaking to userspace on ancient kernels (addresses Fedora bug #659382).
- Fixed kernel release string parsing (addresses Debian bug #702309).
- Fixed decoding of *xattr syscalls (addresses Fedora bug #885233).
- Fixed handling of files with 64-bit inode numbers by 32-bit strace (addresses Fedora bug #912790).
- Fixed tracing forks on SPARC.
- Fixed decoding of fadvise64, fallocate, ftruncate64, io_submit, pread, preadv, pwrite, pwritev, readahead, sigaltstack, sync_file_range, sysctl, and truncate64 syscalls.
- Fixed categories of multiple syscalls on most of supported architectures.
- Fixed decoding of non-native 32-bit personality recv[m]msg syscalls.
- Fixed decoding of multiple 32-bit personality syscalls on x32.
- Fixed decoding of long long syscall arguments on ARM, MIPS/o32, PowerPC, S390x, and Tile architectures.
- Fixed semtimedop decoding on S390x.
- Fixed sram_alloc decoding on Blackfin.
- Fixed build when process_vm_readv is a stab.
- Fixed build with older versions of libaio.h.
New in strace 4.7 (May 3, 2012)
- This is a stable release, with the usual bugfixes, enhanced support for fresh Linux kernels, and other improvements.
New in strace 4.6 (Mar 16, 2011)
- This is a stable release, with usual bugfixes, enhanced support for fresh Linux kernels, and other improvements, including a new method of following clone, fork, and vfork syscalls using the Linux kernel's explicit facilities for tracing creation of threads and child processes.
New in strace 4.5.20 (Apr 15, 2010)
- Improvements:
- Implemented decoding of new linux syscalls: inotify_init1, recvmmsg.
- Implemented basic decoding of new linux syscalls: preadv, pwritev, rt_tgsigqueueinfo, perf_event_open.
- Enhanced decoding of recently added syscalls on non-x86 architectures by replacing a bare decoder with elaborate parsers enabled earlier for x86/x86-64.
- Implemented -C option to combine regular and -c output. (Addresses Debian bug #466196)
- Enhanced decoding of mbind and mremap syscalls.
- Enhanced SOL_PACKET socket options decoding.
- Regenerated list of ioctl names from linux 2.6.33.
- Added TILE architecture support.
- Bug fixes:
- Fixed build with Linux kernel headers 2.6.32-rc5+. (Addresses Debian bug #560516 and Fedora bug #539044)
- Fixed build on mips.
- Fixed handling of Linux systems without struct statfs64.
- Fixed reporting signal mask by sigreturn on powerpc.
- Fixed potential stack buffer overflow in select decoder. (Addresses Fedora bug #556678)
- Corrected msgsnd indirect ipccall decoding.
- Corrected decoding of 64bit syscalls. (Addresses Debian bug #570603)
- Corrected getsockopt decoding on architectures where sizeof(long) > sizeof(int). (Addresses Debian bug #494844)
- Corrected decoding of epoll_pwait. (Addresses Debian bug #513014)
- Corrected handling of killed threads.