* configure.ac (AC_CHECK_HEADERS([linux/bpf.h])): Check for struct bpf_insn. * tests/bpf.c: Remove the test guard, include "scno.h", "bpf_attr.h", "xlat.h", and "xlat/bpf_commands.h". Conditionalize inclusion of <linux/bpf.h> on HAVE_LINUX_BPF_H. Remove all HAVE_UNION_* checks. (BPF_ATTR_DATA_FIELD): New macro. (bpf_attr_data): New union. Note that it is larger than modern union bpf_attr, this allows more checks to be implemented in the future. (sizeof_attr, test_bpf_): Replace union bpf_attr with union bpf_attr_data. (DEF_BPF_INIT_FIRST): Replace union bpf_attr with the corresponding structure. (init_BPF_MAP_CREATE_attr): Replace union bpf_attr with struct BPF_MAP_CREATE_struct. (init_BPF_MAP_LOOKUP_ELEM_attr): Replace union bpf_attr with struct BPF_MAP_LOOKUP_ELEM_struct. (init_BPF_MAP_UPDATE_ELEM_attr): Replace union bpf_attr with struct BPF_MAP_UPDATE_ELEM_struct. (init_BPF_MAP_DELETE_ELEM_attr): Replace union bpf_attr with struct BPF_MAP_DELETE_ELEM_struct. (init_BPF_MAP_GET_NEXT_KEY_attr): Replace union bpf_attr with struct BPF_MAP_GET_NEXT_KEY_struct. (init_BPF_PROG_LOAD_attr): Replace union bpf_attr with struct BPF_PROG_LOAD_struct. (init_BPF_OBJ_PIN_attr): Replace union bpf_attr with struct BPF_OBJ_PIN_struct. (init_BPF_PROG_ATTACH_attr): Replace union bpf_attr with struct BPF_PROG_ATTACH_struct. (init_BPF_PROG_DETACH_attr): Replace union bpf_attr with struct BPF_PROG_DETACH_struct. (init_BPF_PROG_GET_NEXT_ID_attr): Replace union bpf_attr with struct BPF_PROG_GET_NEXT_ID_struct. (sample_BPF_PROG_TEST_RUN_attr): Change type from union bpf_attr to struct BPF_PROG_TEST_RUN_struct, all users updated. (sample_BPF_OBJ_GET_INFO_BY_FD_attr): Change type from union bpf_attr to struct BPF_OBJ_GET_INFO_BY_FD_struct, all users updated.
strace - the linux syscall tracer
This is strace -- a diagnostic, debugging and instructional userspace utility with a traditional command-line interface for Linux. It is used to monitor and tamper with interactions between processes and the Linux kernel, which include system calls, signal deliveries, and changes of process state. The operation of strace is made possible by the kernel feature known as ptrace.
strace is released under a Berkeley-style license at the request of Paul Kranenburg; see the file COPYING for details.
See the file NEWS for information on what has changed in recent versions.
Please read the file INSTALL-git for installation instructions.
The user discussion and development of strace take place on the strace mailing list -- everyone is welcome to post bug reports, feature requests, comments and patches to strace-devel@lists.strace.io. The mailing list archives are available at https://lists.strace.io/pipermail/strace-devel/ and other archival sites.
The GIT repository of strace is available at GitHub and GitLab.
The latest binary strace packages are available in many repositories, including OBS, Fedora rawhide, and Sisyphus.