aboutsummaryrefslogtreecommitdiff
path: root/printrusage.c
AgeCommit message (Collapse)Author
2017-05-25Upgrade strace to 4.17.Elliott Hughes
Noteworthy changes in release 4.17 (2017-05-24) =============================================== * Changes in command line syntax * Syscall classes specified in -e trace= option now have % prefix (like -e trace=%process). Old style class names without leading % are still supported, but considered deprecated now. * Improvements * Optimized syscall filtering. * Improved representation of timestamps. * Enhanced decoding of sched_setattr syscall. * Added -e trace=%stat option for tracing variants of stat syscall. * Added -e trace=%lstat option for tracing variants of lstat syscall. * Added -e trace=%fstat option for tracing variants of fstat and fstatat syscalls. * Added -e trace=%%stat option for tracing syscalls used for querying file status information (stat, lstat, fstat, fstatat, statx, and their variations). * Added -e trace=%statfs option for tracing statfs, statfs64 and statvfs syscalls. * Added -e trace=%fstatfs option for tracing fstatfs, fstatfs64 and fstatvfs syscalls. * Added -e trace=%%statfs option for tracing syscalls used for querying file system statistics information (statfs-like, fstatfs-like and ustat). * Added -e trace=/regex option for filtering syscalls using regular expressions. * Added support for prepending of question mark before syscall qualification in -e trace expressions in order to suppress error in case no syscalls matched the provided qualification. * Implemented decoding of signal mask in rt_sigreturn syscall on alpha, arc, arm, avr32, bfin, cris, hppa, m68k, metag, microblaze, mips, nios2, or1k, powerpc, powerpc64, riscv, sh, sh64, sparc, sparc64, tile, x86, and xtensa architectures. * Implemented decoding of statx syscall. * Implemented decoding of NS_* ioctl commands. * Implemented decoding of the remaining V4L2_BUF_TYPE_* types. * Implemented decoding of VIDIOC_[SG]_TUNER ioctl commands. * Implemented decoding of NLMSG_ERROR netlink messages. * Improved decoding of BPF_PROG_ATTACH command of bpf syscall. * Improved decoding of misplaced parts in DM_* ioctl commands. * Updated lists of ioctl commands from Linux 4.11. * Bug fixes * Fixed decoding of flags argument of preadv2 and pwritev2 syscalls on x32. * Fixed the number of arguments and tracing flags of alpha specific syscalls. * Fixed decoding of old sigsuspend syscall on alpha, cris, mips, powerpc, powerpc64, sh, sh64, sparc, and sparc64. * Fixed decoding of sgetmask and ssetmask syscalls on 64-bit architectures. * Fixed decoding of netlink messages received within struct msghdr. * Worked around a bug in miscompiled aarch64 kernels leading to the 3rd argument of sched_getattr syscall being not quite 32-bit. * Fixed corner cases of printing inaccessible times argument of utimes and futimesat syscalls. Bug: N/A Test: strace date Change-Id: Idc4614a3f16ffe57fdca2a07a05253900d1c52bb
2017-02-15Upgrade strace to 4.16 from 4.14.Elliott Hughes
Noteworthy changes in release 4.16 (2017-02-14) * Improvements * Implemented syscall return value injection (-e inject=SET:retval= option). * Implemented signal injection (-e inject=SET:signal= option). * Implemented decoding of SUID_DUMP_* constants in PR_[GS]ET_DUMPABLE. * Implemented decoding of all SG_* ioctl commands. * Implemented decoding of ustat syscall. * Implemented decoding of BPF_OBJ_PIN, BPF_OBJ_GET, BPF_PROG_ATTACH, and BPF_PROG_DETACH commands of bpf syscall. * Enhanced decoding of sg_io_hdr and sg_io_v4 structures. * Enhanced decoding of get_robust_list, getrandom, io_submit, set_robust_list syscalls. * Enhanced decoding of entities of kernel long type on x32 and mips n32 ABIs. * Updated lists of IP_*, IPV6_*, and LOOP_* constants. * Updated lists of ioctl commands from Linux 4.10. * Added decoding of recently added syscalls on avr32, microblaze, ppc, and ppc64. * Bug fixes * Fixed pathmatch of oldselect syscall on 64-bit architectures. * Fixed decoding of mmap2 syscall on s390 when arguments are not available. * Fixed decoding of kexec_file_load, mprotect, pkey_mprotect, prctl, preadv*, and pwritev* syscalls on x32. * Fixed printing of string arguments of getxattr and setxattr syscalls when -s option is used to limit the printed string size. * Fixed decoding of ifconf, ifreq, and loop_info structures on non-native personalities. * Fixed decoding of SG_* and LOOP_* ioctl commands. * Fixed build on mips with musl libc. * Fixed cross-building of ioctlsort. * Applied minor formatting fixes to the manual page. Noteworthy changes in release 4.15 (2016-12-14) * Changes in behavior * Time stamps are now printed according to ISO 8601. * Changed output format of val3 parameter of futex FUTEX_WAKE_OP operation. * The last argument of mincore, sched_getaffinity, and sched_setaffinity syscalls is now formatted as an array. * Improvements * Implemented syscall fault injection (-e fault=... option). * Implemented decoding of DM_* ioctl commands. * Implemented decoding of attr parameter of perf_event_open syscall. * Implemented decoding of pkey_alloc, pkey_free, and pkey_mprotect syscalls. * Implemented dumping of mq_timedsend and mq_timedreceive syscalls. * Implemented decoding of PR_SET_FP_MODE and PR_GET_FP_MODE operations of prctl syscall. * Implemented PTRACE_GETREGS API support on m68k. * Updated lists of ARCH_*, BPF_*, BTRFS_*, FALLOC_*, MS_*, *_MAGIC, and V4L2_* constants. * Updated lists of ioctl commands from Linux 4.9. * Added decoding of recently added syscalls on arc, x32, and xtensa. * Enhanced manual page. * Bug fixes * Fixed corner cases in decoding of exit, exit_group, futimesat, getgroups, getresuid, init_module, inotify_init1, kcmp, kexec_load, lookup_dcookie, mq_getsetattr, mq_notify, mq_open, mq_timedreceive, mq_timedsend, name_to_handle_at, prctl, process_vm_readv, process_vm_writev, setfsuid, setgroups, setns, unshare, and utimes syscalls. * Fixed handling of verbose flag in printing of controls array of struct v4l2_ext_controls. * Fixed omission of field names in the output of capability, sigaction, sigevent, statfs, timespec, timeval, and utimbuf structures. * Fixed printing of unknown syscalls in siginfo structure. * Fixed decoding of ioctl constants on m68k. * Fixed cris architecture support. * Fixed cross build when host compiler does not support the same set of warning flags as the cross compiler. * Fixed build on SLE10 and SLE11. Bug: N/A Test: manual Change-Id: I590bf5db1652aa1dfdc0eb16e30fd97c82af2261
2016-08-23Rename widen_to_ull to zero_extend_signed_to_ullDmitry V. Levin
* defs.h (widen_to_ull): Rename to zero_extend_signed_to_ull. All callers changed. * tests/tests.h: Likewise.
2016-06-10Fix sign extension issues in the parser of struct rusageDmitry V. Levin
* printrusage.c (printrusage): Do not cast members of struct rusage to type long, use widen_to_ull instead.
2016-05-21mpers: add support of conditionally compiled printersDmitry V. Levin
We used to declare and define all printers marked with MPERS_PRINTER_DECL, including ifdef'ed ones. That approach left us no way to conditionally compile mpersified printers, which was not a problem until btrfs ioctls appeared on the horizon. With this change, those mpersified printers that are not going to be compiled are also won't be declared and won't be added to struct_printers. This is implemented by filtering all source files containing MPERS_PRINTER_DECL markers through CPP. As a nice side effect, this also lifts an ugly requirement of writing all MPERS_PRINTER_DECL declarations in a single line. * README-mpers: Update description of MPERS_PRINTER_DECL syntax. * defs.h [IN_MPERS_BOOTSTRAP] (MPERS_PRINTER_DECL): Turn into a recursive variadic macro. [!IN_MPERS_BOOTSTRAP] (MPERS_PRINTER_DECL): Turn into a variadic macro. All callers changed. * Makefile.am (mpers_preproc_files, mpers_printer_decl_pattern): New variables. (CLEANFILES): Add $(mpers_preproc_files). (%.c.mpers.i): New rule. (printers.h, %_printer_decls.h, %_printer_defs.h): Use mpers_preproc_files instead of srcdir_mpers_source_files, use mpers_printer_decl_pattern. * .gitignore: Add /*.mpers.i.
2015-08-28Mpersify parsers of getrusage, waitpid, wait4, and waitid syscallsDmitry V. Levin
Fix multiple personalities support in parsers of getrusage, waitpid, wait4, and waitid syscalls by converting printrusage into a mpersified printer. * defs.h (printrusage): Remove. * printrusage.c (rusage_t): New typedef. Mpersify it. (printrusage): Use it instead of struct rusage. Wrap function name into MPERS_PRINTER_DECL. * resource.c (sys_getrusage): Use mpersified printrusage. * wait.c (printwaitn, sys_waitid): Likewise.
2015-07-18resource.c: move printrusage and printrusage32 to a separate fileDmitry V. Levin
* printrusage.c: New file. * Makefile.am (strace_SOURCES): Add it. * resource.c (printrusage, [ALPHA] printrusage32): Move to printrusage.c.