Go to file
Edgar Kaziakhmedov 2c877a5df6 Introduce asinfo tool
The main purpose of this query tool is to present all information concluded
at sysent.h files in a convenient way.
The asinfo tool has the following staged architecture:
(command dispatcher)->(architecture dispatcher)->
(abi dispatcher)->(system call dispatcher).
Each dispatcher accepts proccesed data from previous one.

This point can be illustrated by the following example:
$ asinfo --get-arch --get-sname write
Firstly, arch_dispatcher will return the current architecture, based on
uname return value, after that in case of no options for abi_dispatcher,
it perceives empty parameter as get-abi parameter and returns ABI mode set at
compile time of strace package. Therefore, syscall_dispatcher accepts this
architecture/ABI and works with specific set of system calls. It is worth
mentioning that it supports all architectures/ABIs supported by strace.
Also, tool can work in multi-arch mode. for instance:
$ ./tools/asinfo/asinfo --set-arch mips64,mips --set-abi n64,all
--get-snum 100,8,%ipc
For more info, use asinfo -h.

* Makefile.am (SUBDIRS): Add tools directory.
* configure.ac (AC_CONFIG_FILES): Add Makefiles.
* tools/Makefile.am: New file.
* tools/asinfo/Makefile.am: New file.
* tools/asinfo/dispatchers.h: New file. Prototype abi_dispatcher,
arch_dispatcher, and syscall_dispatcher.
* tools/asinfo/dispatchers.c: New file. Implement them.
* tools/asinfo/error_interface.h: New file. Introduce error_service to
improve informativeness of output errors. Prototype methods to work with
error_service.
* tools/asinfo/error_interface.c: New file. Implement it.
* tools/asinfo/arch_interface.h: New file. Introduce struct
arch_descriptor. Introduce arch_service. Prototype methods to simplify
work with the arch_service.
* tools/asinfo/arch_interface.c: New file. Implement it.
* tools/asinfo/syscall_interface.h: New file. Introduce syscall_service.
Prototype methods to simplify work with syscall_service.
* tools/asinfo/syscall_interface.c: New file. Implement it.
* tools/asinfo/request_msgs.h: New file. Introduce main requests.
* tools/asinfo/asinfo.c: New file. Implement support of all options.
Implement usage. Implement version.
* tools/asinfo/arch_definitions.h: New file. Introduce useful storage
for architectures.

* tools/asinfo/gen_asinfo_files.sh: New file.
* bootstrap: Add it.
* tools/asinfo/Makefile.am: Include Makemodule.am.
(asinfo_SOURCES): Add $(ARCH_AUX_FILES).
* tools/asinfo/README-arch: New README explaining how to add new
architecture/ABI to asinfo tool.

* configure.ac (AC_CONFIG_FILES): Add asinfo.1.
(asinfo_manpage_date): New m4 define.
(ASINFO_MANPAGE_DATE): New define/subst.
* tools/asinfo/asinfo.1.in: New file.
* tools/asinfo/gen_asinfo_files.sh: Add asinfo.1 to .gitignore
generation.

* debian/control (strace): Add asinfo description.
* debian/strace.install: Add path to asinfo binary.
* debian/strace.manpages: Add path to asinfo manual page.
* strace.spec.in (%files): Add asinfo binary.

Update NEWS

This set of tests cover all possible cases in asinfo tool. However,
as asinfo uses some libraries provided by strace (such as basic_filters)
there is no need to test them again in asinfo context.
Also, the set of syscalls for specific architecture (hence, its number) might
be expanded in the future, so to overcome this obstacle and avoid duplication
of the same strings reference output ptintings are stored in
ref_asinfo_output.h file.
As for syscall-related checks, tests use old syscalls as samples, so their
numbers and names can't be changed.

* configure.ac (AC_CONFIG_FILES): Add tests Makefile to be generated.
* tools/asinfo/Makefile.am (SUBDIRS): Add tests dir.
* tools/asinfo/tests/Makefile.m: New file.
* tools/asinfo/tests/init.sh: New file. Main subroutines for tests.
* tools/asinfo/tests/ref_asinfo_output.h: New file.
* tools/asinfo/tests/com_disp_wrong_keys.c: Likewise.
* tools/asinfo/tests/com_disp_wrong_keys.test: Likewise.
* tools/asinfo/tests/format_output.c: Likewise.
* tools/asinfo/tests/format_output.test: Likewise.
* tools/asinfo/tests/get_arch_abi.c: Likewise.
* tools/asinfo/tests/get_arch_abi.test: Likewise.
* tools/asinfo/tests/get_sname.c: Likewise.
* tools/asinfo/tests/get_sname.test: Likewise.
* tools/asinfo/tests/get_snum.c: Likewise.
* tools/asinfo/tests/get_snum.test: Likewise.
* tools/asinfo/tests/list_arch.c: Likewise.
* tools/asinfo/tests/list_arch.test: Likewise.
* tools/asinfo/tests/multiarch_get_sname.c: Likewise.
* tools/asinfo/tests/multiarch_get_sname.test: Likewise.
* tools/asinfo/tests/multiarch_get_snum.c: Likewise.
* tools/asinfo/tests/multiarch_get_snum.test: Likewise.
* tools/asinfo/tests/set_abi.c: Likewise.
* tools/asinfo/tests/set_abi.test: Likewise.
* tools/asinfo/tests/set_arch.c: Likewise.
* tools/asinfo/tests/set_arch.test: Likewise.
* tools/asinfo/tests/set_mult_abi.c: Likewise.
* tools/asinfo/tests/set_mult_abi.test: Likewise.
* tools/asinfo/tests/set_mult_arch.c: Likewise.
* tools/asinfo/tests/set_mult_arch.test: Likewise.

Signed-off-by: Edgar Kaziakhmedov <edgar.kaziakhmedov@virtuozzo.com>
Adjusted-and-rebased-by: Dmitry V. Levin <ldv@altlinux.org>
2019-01-05 21:14:42 +00:00
ci Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
debian Introduce asinfo tool 2019-01-05 21:14:42 +00:00
dist Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
linux Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
m4 Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
maint maint: update for linux 4.20 2018-12-26 18:25:10 +00:00
qemu_multiarch_testing Wipe out references to defunct sourceforge 2018-02-23 23:18:56 +00:00
test Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
tests xlat: update FAN_* constants 2019-01-05 21:14:42 +00:00
tools Introduce asinfo tool 2019-01-05 21:14:42 +00:00
xlat xlat: update REL_* constants 2019-01-05 21:14:42 +00:00
.gitattributes Disable git-archive 2018-09-18 21:54:17 +00:00
.gitignore Bring lists back to the sorted order 2019-01-02 00:29:09 +00:00
.gitlab-ci.yml ci: add a test with the latest gcc and mainline headers 2018-08-19 10:26:18 +00:00
.mailmap Update .mailmap 2018-01-07 03:11:21 +00:00
.travis.yml ci: add a test with the latest gcc and mainline headers 2018-08-19 10:26:18 +00:00
access.c Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
affinity.c Update copyright headers 2018-12-24 23:46:43 +00:00
aio.c aio: fix off-by-one error in indexed xlat lookup 2018-12-23 22:12:36 +00:00
alpha.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
arch_defs.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
AUTHORS 2002-12-22 Roland McGrath <roland@redhat.com> 2002-12-30 00:51:30 +00:00
basic_filters.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
bind.c Update copyright headers 2018-12-24 23:46:43 +00:00
bjm.c Update copyright headers 2018-12-24 23:46:43 +00:00
block.c Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
bootstrap Introduce asinfo tool 2019-01-05 21:14:42 +00:00
bpf_attr.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
bpf_filter.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
bpf_filter.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
bpf_fprog.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
bpf_seccomp_filter.c Update copyright headers 2018-12-24 23:46:43 +00:00
bpf_sock_filter.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
bpf.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
btrfs.c Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
build_static_example.sh Use bootstrap script consistently 2014-05-30 21:31:08 +00:00
cacheflush.c Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
capability.c Update copyright headers 2018-12-24 23:46:43 +00:00
caps0.h Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
caps1.h Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
ChangeLog-CVS Generate ChangeLog from git log 2009-07-08 21:01:21 +00:00
chdir.c Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
chmod.c Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
clone.c Use printsignal instead of signame 2018-12-17 19:19:23 +00:00
configure.ac Introduce asinfo tool 2019-01-05 21:14:42 +00:00
copy_file_range.c Update copyright headers 2018-12-24 23:46:43 +00:00
COPYING Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
copyright-year-gen Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
count.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
CREDITS.in Wipe out references to defunct sourceforge 2018-02-23 23:18:56 +00:00
defs.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
delay.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
delay.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
desc.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
dirent64.c Update copyright headers 2018-12-24 23:46:43 +00:00
dirent.c Update copyright headers 2018-12-24 23:46:43 +00:00
dm.c Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
dyxlat.c Update copyright headers 2018-12-24 23:46:43 +00:00
empty.h Add mpers support 2015-08-28 08:46:23 +00:00
epoll.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
error_prints.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
error_prints.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
evdev_mpers.c Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
evdev.c Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
eventfd.c Update copyright headers 2018-12-24 23:46:43 +00:00
execve.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
f_owner_ex.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
fadvise.c Update copyright headers 2018-12-24 23:46:43 +00:00
fallocate.c Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
fanotify.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
fchownat.c Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
fcntl.c Use printsignal instead of signame 2018-12-17 19:19:23 +00:00
fetch_bpf_fprog.c Update copyright headers 2018-12-24 23:46:43 +00:00
fetch_indirect_syscall_args.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
fetch_struct_flock.c Update copyright headers 2018-12-24 23:46:43 +00:00
fetch_struct_keyctl_kdf_params.c Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
fetch_struct_mmsghdr.c Update copyright headers 2018-12-24 23:46:43 +00:00
fetch_struct_msghdr.c Update copyright headers 2018-12-24 23:46:43 +00:00
fetch_struct_stat64.c Update copyright headers 2018-12-24 23:46:43 +00:00
fetch_struct_stat.c Update copyright headers 2018-12-24 23:46:43 +00:00
fetch_struct_statfs.c Update copyright headers 2018-12-24 23:46:43 +00:00
fetch_struct_xfs_quotastat.c Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
file_handle.c Update copyright headers 2018-12-24 23:46:43 +00:00
file_ioctl.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
file-date-gen Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
filter_qualify.c filter_qualify: prepare for the change of signame semantics 2018-12-17 19:19:23 +00:00
filter.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
flock.c Update copyright headers 2018-12-24 23:46:43 +00:00
flock.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
fs_x_ioctl.c Update copyright headers 2018-12-24 23:46:43 +00:00
fstatfs64.c Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
fstatfs.c Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
futex.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
gcc_compat.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
gen_bpf_attr_check.sh Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
generate_mpers_am.sh Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
generate_sen.sh Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
get_personality.c Introduce PTRACE_GET_SYSCALL_INFO support 2018-12-13 22:07:26 +00:00
get_personality.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
get_robust_list.c Update copyright headers 2018-12-24 23:46:43 +00:00
getcpu.c Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
getcwd.c Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
getpagesize.c Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
getrandom.c Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
git-set-file-times Update auxiliary maintainer mode build tools 2015-01-21 21:17:08 +00:00
git-version-gen Add copyright headers 2017-05-22 17:33:51 +00:00
gitlog-to-changelog Update auxiliary maintainer mode build tools 2015-01-21 21:17:08 +00:00
HACKING-scripts Move errnoent.sh, signalent.sh, and syscallent.sh to maint subdirectory 2017-05-16 02:11:35 +00:00
hdio.c Update copyright headers 2018-12-24 23:46:43 +00:00
hostname.c Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
inotify_ioctl.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
inotify.c Update copyright headers 2018-12-24 23:46:43 +00:00
INSTALL-git.md Rename INSTALL to README-configure 2018-11-01 13:00:37 +00:00
io.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
ioctl_iocdef.c Update copyright headers 2018-12-24 23:46:43 +00:00
ioctl.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
ioctlsort.c Update copyright headers 2018-12-24 23:46:43 +00:00
ioperm.c Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
iopl.c Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
ioprio.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
ipc_defs.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
ipc_msg.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
ipc_msgctl.c Update copyright headers 2018-12-24 23:46:43 +00:00
ipc_sem.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
ipc_shm.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
ipc_shmctl.c Update copyright headers 2018-12-24 23:46:43 +00:00
ipc.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
kcmp.c Update copyright headers 2018-12-24 23:46:43 +00:00
kernel_types.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
kexec.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
keyctl_kdf_params.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
keyctl.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
kill_save_errno.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
kvm.c Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
largefile_wrappers.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
ldt.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
LGPL-2.1-or-later Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
link.c Update copyright headers 2018-12-24 23:46:43 +00:00
listen.c Update copyright headers 2018-12-24 23:46:43 +00:00
lookup_dcookie.c Update copyright headers 2018-12-24 23:46:43 +00:00
loop.c Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
lseek.c Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
macros.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
make-dist Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
make-dsc Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
Makefile.am Introduce asinfo tool 2019-01-05 21:14:42 +00:00
mem.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
membarrier.c Update copyright headers 2018-12-24 23:46:43 +00:00
memfd_create.c Update copyright headers 2018-12-24 23:46:43 +00:00
mknod.c Update copyright headers 2018-12-24 23:46:43 +00:00
mmap_cache.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
mmap_cache.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
mmap_notify.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
mmap_notify.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
mmsghdr.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
mount.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
mpers_test.sh Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
mpers_type.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
mpers.awk Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
mpers.sh Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
mq.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
msghdr.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
msghdr.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
mtd.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
native_defs.h Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
nbd_ioctl.c Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
negated_errno.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
net.c Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
netlink_crypto.c Update copyright headers 2018-12-24 23:46:43 +00:00
netlink_inet_diag.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
netlink_kobject_uevent.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
netlink_kobject_uevent.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
netlink_netfilter.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
netlink_netlink_diag.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
netlink_packet_diag.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
netlink_route.c Update copyright headers 2018-12-24 23:46:43 +00:00
netlink_route.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
netlink_selinux.c Update copyright headers 2018-12-24 23:46:43 +00:00
netlink_smc_diag.c Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
netlink_sock_diag.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
netlink_sock_diag.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
netlink_unix_diag.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
netlink.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
netlink.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
NEWS Introduce asinfo tool 2019-01-05 21:14:42 +00:00
nlattr.c nlattr: fix off-by-one error in indexed xlat lookup 2018-12-23 22:12:36 +00:00
nlattr.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
nsfs.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
nsfs.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
nsig.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
numa.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
number_set.c Update copyright headers 2018-12-24 23:46:43 +00:00
number_set.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
oldstat.c Update copyright headers 2018-12-24 23:46:43 +00:00
open.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
or1k_atomic.c Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
pathtrace.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
perf_event_struct.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
perf_ioctl.c Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
perf.c Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
personality.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
pkeys.c Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
poll.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
prctl.c xlat: add PR_SPEC_INDIRECT_BRANCH to pr_spec_cmds 2018-12-26 01:59:38 +00:00
print_aio_sigset.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
print_dev_t.c Update copyright headers 2018-12-24 23:46:43 +00:00
print_fields.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
print_group_req.c Update copyright headers 2018-12-24 23:46:43 +00:00
print_ifindex.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
print_instruction_pointer.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
print_kernel_version.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
print_mac.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
print_mq_attr.c Update copyright headers 2018-12-24 23:46:43 +00:00
print_msgbuf.c Update copyright headers 2018-12-24 23:46:43 +00:00
print_sg_req_info.c Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
print_sigevent.c Update copyright headers 2018-12-24 23:46:43 +00:00
print_statfs.c Update copyright headers 2018-12-24 23:46:43 +00:00
print_struct_stat.c Update copyright headers 2018-12-24 23:46:43 +00:00
print_time.c Update copyright headers 2018-12-24 23:46:43 +00:00
print_timespec.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
print_timeval.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
print_timex.c Update copyright headers 2018-12-24 23:46:43 +00:00
printmode.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
printrusage.c Update copyright headers 2018-12-24 23:46:43 +00:00
printsiginfo.c Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
printsiginfo.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
process_vm.c Update copyright headers 2018-12-24 23:46:43 +00:00
process.c Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
ptp.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
ptrace_syscall_info.c Implement PTRACE_GET_SYSCALL_INFO decoder 2018-12-13 22:07:26 +00:00
ptrace_syscall_info.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
ptrace.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
quota.c quotactl: add xlat styles support 2018-12-24 10:19:24 +00:00
random_ioctl.c Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
readahead.c Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
readlink.c Update copyright headers 2018-12-24 23:46:43 +00:00
README-configure Rename INSTALL to README-configure 2018-11-01 13:00:37 +00:00
README-github_gitlab-autogenerated-archives.txt Disable git-archive 2018-09-18 21:54:17 +00:00
README-hacking doc: update commit requirements 2018-03-16 00:55:58 +00:00
README-linux-ptrace README-linux-ptrace: correct the description of suppressed signals 2012-02-09 19:57:52 +01:00
README-mpers mpers: add support of conditionally compiled printers 2016-05-21 22:53:06 +00:00
README.md Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
reboot.c Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
regs.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
renameat.c Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
resource.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
retval.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
retval.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
riscv.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
rt_sigframe.c Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
rt_sigreturn.c Update copyright headers 2018-12-24 23:46:43 +00:00
rtc.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
rtnl_addr.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
rtnl_addrlabel.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
rtnl_dcb.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
rtnl_link.c Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
rtnl_mdb.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
rtnl_neigh.c xlat: update NDA_* constants 2019-01-05 21:14:42 +00:00
rtnl_neightbl.c Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
rtnl_netconf.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
rtnl_nsid.c xlat: update NETNSA_* constants 2019-01-05 21:14:42 +00:00
rtnl_route.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
rtnl_rule.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
rtnl_tc_action.c Update copyright headers 2018-12-24 23:46:43 +00:00
rtnl_tc.c rtnl_tc: add TCA_STATS_BASIC_HW 2018-12-26 01:59:38 +00:00
s390.c Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
sched_attr.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
sched.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
scno.am Update copyright headers 2018-12-24 23:46:43 +00:00
scno.head Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
scsi.c Update copyright headers 2018-12-24 23:46:43 +00:00
seccomp.c Update copyright headers 2018-12-24 23:46:43 +00:00
sendfile.c Update copyright headers 2018-12-24 23:46:43 +00:00
sg_io_v3.c Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
sg_io_v4.c Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
shutdown.c Update copyright headers 2018-12-24 23:46:43 +00:00
sigaltstack.c Update copyright headers 2018-12-24 23:46:43 +00:00
sigevent.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
signal.c Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
signalfd.c Update copyright headers 2018-12-24 23:46:43 +00:00
sigreturn.c Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
sock.c Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
sockaddr.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
socketcall.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
socketutils.c Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
sparc.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
sram_alloc.c Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
stat64.c Update copyright headers 2018-12-24 23:46:43 +00:00
stat.c Update copyright headers 2018-12-24 23:46:43 +00:00
stat.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
statfs64.c Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
statfs.c Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
statfs.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
static_assert.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
statx.c Update copyright headers 2018-12-24 23:46:43 +00:00
statx.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
strace-graph Update copyright headers 2018-12-24 23:46:43 +00:00
strace-log-merge Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
strace-log-merge.1.in Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
strace.1.in strace.1.in: consistently use CTRL-combinations 2018-12-24 20:11:43 +00:00
strace.c Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
strace.spec.in Introduce asinfo tool 2019-01-05 21:14:42 +00:00
strace.svg Add strace mascot 2017-12-03 19:53:48 +01:00
string_to_uint.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
string_to_uint.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
swapon.c Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
sync_file_range2.c Update copyright headers 2018-12-24 23:46:43 +00:00
sync_file_range.c Update copyright headers 2018-12-24 23:46:43 +00:00
syscall.c Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
sysctl.c Update copyright headers 2018-12-24 23:46:43 +00:00
sysent_shorthand_defs.h Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
sysent_shorthand_undefs.h Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
sysent.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
sysinfo.c Update copyright headers 2018-12-24 23:46:43 +00:00
syslog.c syslog: move constant definitions to xlat 2018-12-26 01:59:38 +00:00
sysmips.c Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
term.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
time.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
times.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
trace_event.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
truncate.c Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
ubi.c Update copyright headers 2018-12-24 23:46:43 +00:00
ucopy.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
uid16.c Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
uid.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
umask.c Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
umount.c Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
uname.c Update copyright headers 2018-12-24 23:46:43 +00:00
unwind-libdw.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
unwind-libunwind.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
unwind.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
unwind.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
upeek.c Update copyright headers 2018-12-24 23:46:43 +00:00
upoke.c Change the license of strace to LGPL-2.1-or-later 2018-12-10 00:00:00 +00:00
userfaultfd.c Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
ustat.c Update copyright headers 2018-12-24 23:46:43 +00:00
util.c Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
utime.c Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
utimes.c Update copyright headers 2018-12-24 23:46:43 +00:00
v4l2.c Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
wait.c Use sprintsigname for converting signal number to string 2018-12-17 19:19:23 +00:00
wait.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
xattr.c Update copyright headers 2018-12-24 23:46:43 +00:00
xfs_quota_stat.h Add copyright headers to some files that lack them 2018-12-24 23:46:43 +00:00
xlat.c xlat_idx: do not issue warnings for holes in indices 2018-12-24 10:19:24 +00:00
xlat.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
xmalloc.c Update copyright headers 2018-12-24 23:46:43 +00:00
xmalloc.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00
xstring.h Fix preprocessor indentation 2018-12-30 15:35:21 +00:00

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 the terms of the GNU Lesser General Public License version 2.1 or later; see the file COPYING for details. strace test suite is released under the terms of the GNU General Public License version 2 or later; see the file tests/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.

Please take a look at the guide for new contributors if you want to get involved in strace development.

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.

Build Status Code Coverage