b755614143ce6aab5265ed32c1bb6c8f748e7898 |
|
21-Feb-2018 |
Elliott Hughes <enh@google.com> |
Update strace to 4.21. Noteworthy changes in release 4.21 (2018-02-13) =============================================== * Changes in behaviour * Warning is now issued when -F option is used. * Warning is now issued when a tracee with unsupported personality is attached. * Unknown syscall numbers are now printed in hexadecimal form. * Improvements * Implemented decoding of netlink descriptor attributes as file descriptors. * Implemented decoding of hugetlb page size selection flags. * Implemented decoding of BPF_PROG_TEST_RUN, BPF_PROG_GET_NEXT_ID, BPF_MAP_GET_NEXT_ID, BPF_PROG_GET_FD_BY_ID, BPF_MAP_GET_FD_BY_ID, and BPF_OBJ_GET_INFO_BY_FD commands of bpf syscall. * Enhanced decoding of get_thread_area, memfd_create, modify_ldt, perf_event_open, reboot, s390_guarded_storage, s390_pcio_mmio_read, s390_pci_mmio_write, s390_runtime_instr, s390_sthyi, set_thread_area, and shmget syscalls. * Implemented decoding of KVM_* and DM_LIST_DEVICES ioctl commands. * Implemented decoding of riscv_flush_icache syscall. * Enhanced decoding of getsockopt and setsockopt syscalls for SOL_NETLINK level. * Enhanced decoding of BPF_MAP_CREATE command of bpf syscall. * Print values returned by mq_open syscall and first arguments of mq_getsetattr, mq_notify, mq_timedreceive, and mq_timedsend syscalls as file descriptors. * Added decoding of get_tls syscall on arm. * Added -e trace=%pure option for tracing system calls with no arguments that never fail. * Updated lists of IPV6_*, MAP_*, MEMBARRIER_CMD_*, MSG_*, NT_*, PKEY_*, SHM_*, and TCP_* constants. * Added manual page for the strace-log-merge command. * Updated lists of ioctl commands from Linux 4.15. * Implemented biarch support for s390x. * Implemented an optional support for symbol demangling in strace -k output (activated by --with-libiberty configure option). * Information about availability of demangling and reliable personality decoding (on architectures with multiple personalities) is now available in strace -V output. * Added decoding of pkey_alloc, pkey_free, and pkey_mprotect syscalls on powerpc and powerpc64. * Enhanced manual page. * Bug fixes * Fixed multi-personality support in cross builds. * Added mq_getsetattr, mq_notify, mq_open, mq_timedreceive, and mq_timedsend syscalls to %desc tracing set. * Fixed path tracing support for mmap syscalls with indirect arguments and for old select syscall. * Fixed decoding of arm-specific (__ARM_NR_*) syscalls. * Fixed open mode flags decoding. * Fixed corner cases in handling of strace -ff -ttt logs by strace-log-merge. * Error counts that exceed one billion are now printed correctly in call summary output. * Fixed call summary header for x32 personality. * Changes of tracee personalities are reported more reliably. * Fixed the case when strace attaches to a tracee being inside exec and its first syscall stop is syscall-exit-stop instead of syscall-enter-stop, which messed up all the syscall state tracking. * Fixed printing of higher 32 bits of the return value for x32 personality. * Portability * A C compiler that supports "for" loop initial declarations is now required. * Inability to configure multiple personality support on architectures where multiple personalities are supported leads to configuration failure during build now. Use --enable-mpers=check to revert to the old behaviour. * Build-time requirement for the mpers support has been lowered from gawk 4 to gawk 3. * Removed incomplete and non-functional support for the CRIS architecture. * Removed incomplete and unused support for IA-32 mode on the IA-64 architecture. Bug: N/A Test: strace -f date Change-Id: I126eec18d7309a89f5a75dcab6498c99bb099836
/external/strace/mpers.awk
|
77c3ff8e0644f1e120e4b2ebc7222150b0446f3b |
|
09-Sep-2017 |
Elliott Hughes <enh@google.com> |
Update strace to 4.19. Noteworthy changes in release 4.19 (2017-09-05) =============================================== * Changes in behaviour * Changed formatting of personality names on tile architecture in order to make it in line with other multi-personality architectures. * Changed field output order in struct v4l2_requestbuffers to improve in/out field formatting. * Changed handling of multiple signal= specifications in an injection expression: multiple specification now leads to error instead of implicit usage the last specification. * Improvements * Enhanced decoding of optlen argument of getsockopt syscall. * Enhanced decoding of SO_LINGER option of getsockopt and setsockopt syscalls. * Enhanced decoding of SO_PEERCRED option of getsockopt syscall. * Enhanced decoding of IP_ADD_MEMBERSHIP, IP_DROP_MEMBERSHIP, IPV6_ADD_MEMBERSHIP, IPV6_DROP_MEMBERSHIP, IPV6_JOIN_ANYCAST, IPV6_LEAVE_ANYCAST, MCAST_JOIN_GROUP, and MCAST_LEAVE_GROUP options of setsockopt syscall. * Enhanced decoding of KEYCTL_DH_COMPUTE operation of keyctl syscall (KDF parameters decoding). * Implemented decoding of KEYCTL_RESTRICT_KEYRING operation of keyctl syscall. * Enhanced decoding of UFFDIO_API ioctl command. * Enhanced decoding of BPF_PROG_LOAD, BPF_MAP_CREATE, BPF_MAP_LOOKUP_ELEM, and BPF_MAP_GET_NEXT_KEY commands of bpf syscall. * Implemented decoding of linux socket filter programs specified for SO_ATTACH_FILTER and SO_ATTACH_REUSEPORT_CBPF socket options. * Implemented decoding of inet_diag_req_v2, inet_diag_req_compat, packet_diag_msg, and smc_diag_msg netlink attributes of NETLINK_SOCK_DIAG. * Implemented NETLINK_SELINUX protocol specific decoding. * Implemented decoding of netlink message ack flags. * Implemented decoding of nlmsgerr netlink attributes. * Implemented basic protocol specific decoding of NETLINK_CRYPTO. * Implemented decoding of crypto_user_alg netlink attributes of NETLINK_CRYPTO. * Implemented basic protocol specific decoding of addr, addrlabel, dcb, link, mdb, neigh, neightbl, netconf, nsid, route, rule, tc, and tca messages of NETLINK_ROUTE. * Implemented decoding of NETLINK_KOBJECT_UEVENT messages. * Improved handling of unexpected tracees (the ones that cloned with CLONE_PARENT/CLONE_PTRACE or called PTRACE_TRACEME on themselves): they are now PTRACE_DETACH'ed instead of PTRACE_CONT'ed. * Updated lists of BPF_*, KEY_*, RWF_*, SCM_*, SO_*, and *_MAGIC constants. * Added decoding of arch_prctl syscall on x86. * Added decoding of seccomp, bpf, userfaultfd, membarrier, mlock2, copy_file_range, preadv2, pwritev2, and statx on alpha. * Added decoding of statx syscall on microblaze. * Added decoding of s390_guarded_storage syscall on s390. * Updated lists of ioctl commands from Linux 4.13. * Enhanced manual page. * Bug fixes * Fixed printing of group_req structure on non-native personalities. * Fixed output formatting of blkpg_ioctl_arg, dm_name_list, and iocb structures. * Fixed formatting of nul-terminated strings which have kernel-imposed size limit. * Fixed printing of paths that hit PATM_MAX limit in order to match kernel's behaviour. * Fixed build warnings on Android mips64. * Fixed unused function "is_negated_errno" build warning when built with clang. * Fixed syscall number and arguments retrieval behaviour on sparc64 and mips o32 after prctl(PR_SET_DUMPABLE, 0) makes PTRACE_PEEKTEXT impossible to use if Linux kernel has commit v4.10-rc1~114^2~2. * Fixed path tracing for execveat, symlink, symlinkat, inotify_add_watch, and inotify_init syscalls. * Fixed personality switch printing on sparc64 and risc-v. Bug: N/A Test: strace date Change-Id: Idd0ba3efc3fe14dad8aa7b3859045b00d4e6749d
/external/strace/mpers.awk
|
39bac055674d23770b9a724221b728e443196ea7 |
|
26-May-2017 |
Elliott Hughes <enh@google.com> |
Upgrade strace to 4.17. 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
/external/strace/mpers.awk
|
27a1a3f3eb644066cdae4f7004c56953da1ca83d |
|
29-Aug-2016 |
Elvira Khabirova <lineprinter0@gmail.com> |
mpers.awk: relax union member name absence check This fixes mpersing of unions containing nameless members, e.g. struct btrfs_ioctl_vol_args_v2. * mpers.awk (what_is): Print names of union_type members as is.
/external/strace/mpers.awk
|
a840a14f1fa770dddc8f5413c06a88bab0c209b4 |
|
06-Jun-2016 |
Elvira Khabirova <lineprinter0@gmail.com> |
mpers.awk: remove unnecessary type attribute retrieval * mpers.awk (what_is): Do not retrieve "type" attribute for "enumeration_type".
/external/strace/mpers.awk
|
cc902e3272cb8ae10055aaff8cb6525620e12226 |
|
13-Jan-2016 |
Dmitry V. Levin <ldv@altlinux.org> |
mpers.awk: add support for DWARF files generated by clang * mpers.awk: Define default_pointer_size. Initialize byte_size for DW_TAG_pointer_type to default_pointer_size. Set parent for DW_TAG_member only. Handle DW_AT_count as an alternative to DW_AT_upper_bound.
/external/strace/mpers.awk
|
38a34c9349267c99ce1ddbd0b6e985147415d355 |
|
17-Dec-2015 |
Dmitry V. Levin <ldv@altlinux.org> |
Add copyright headers to some files which lack them Before this change, all files that exist since 20th century had copyright headers, while most files that appeared later didn't. This change fixes the inconsistency by adding missing copyright headers. It doesn't mean that copyright headers became maintained. In my view, git history provides much better information on this subject and is much more accurate than copyright headers.
/external/strace/mpers.awk
|
d2bcb1639e1f8abde3210f170c28015b264a4bde |
|
16-Dec-2015 |
Dmitry V. Levin <ldv@altlinux.org> |
mpers.awk: add support for DWARF version 2 format * mpers.awk: Handle DW_AT_data_member_location in DWARF v2 format.
/external/strace/mpers.awk
|
c4afd6dc7a75e155e6c0c399dc90d4840bca53e7 |
|
15-Dec-2015 |
Dmitry V. Levin <ldv@altlinux.org> |
mpers.awk: make fillers added to the output structure more predictable * mpers.awk (array_seq): New function. (what_is): Use it for printing filler names. Tweak return types. * mpers_test.sh: Use a more complicated sample type to test mpers machinery.
/external/strace/mpers.awk
|
54d18a279a01b4643bad4c98e13f365d7dc2cc75 |
|
15-Dec-2015 |
Dmitry V. Levin <ldv@altlinux.org> |
Robustify mpers.awk against input containing index loops Make mpers.awk check for potential index loops. Such loops should not normally happen, but mpers.awk will not go into infinite recursion if they do. * mpers.awk (enter, leave): New functions. (what_is): Use them.
/external/strace/mpers.awk
|
59992183a6e3ae69669f7fb3b6c7bf45c66f02d1 |
|
15-Dec-2015 |
Dmitry V. Levin <ldv@altlinux.org> |
Robustify mpers.awk against invalid input Make mpers.awk check that accessed elements of the main array that are expected to have non-empty values really meet this requirement. * mpers.awk (array_get): New function. (what_is, END): Use it. * mpers_test.sh: Use a more complicated type to test mpers machinery. Reported-by: Mike Frysinger <vapier@gentoo.org>
/external/strace/mpers.awk
|
a5ffa18f138d905639dcf09e1e4a7f7dfd6c91be |
|
26-Nov-2015 |
Elvira Khabirova <lineprinter0@gmail.com> |
mpers: fix compound types with arbitrary member alignments * mpers.sh: Compound types are now represented as packed with character arrays as explicit fillers inbetween members and at the end.
/external/strace/mpers.awk
|
092942206c3c6c9978a96e6589b97cc4029b6d89 |
|
04-Aug-2015 |
Elvira Khabirova <lineprinter0@gmail.com> |
Add mpers support Add a subsystem for semi-automatical definition of how parsers should work with personality-dependent (mpers) types of tracee's data. Create auxiliary libraries containing mpers syscall parsers and printer functions, one library for each possible nonnative target personality. Currently some parsers do not handle differences in definitions of data types between personalities, namely LP64 and ILP32. When this is the case, long integers, pointers, and all compound types containing long and pointer members may be printed incorrectly, because of differences in sizes, offsets and alignments. Since in most cases these are the only differences in desired behaviour of parsers and printers for different personalities, a correct way would be to compile one source code into multiple parsers, differing only in definitions of mpers types. To get a definition of a given type for nonnative personality a very basic .c file containing a declaration of a variable of this type is being compiled for this personality (using -m32 or -mx32 compiler flag). Information about the type is then being extracted from this binary's DWARF debug info with an awk script and put into a corresponding header file. Resulting headers are being used to compile mpers variations of syscall parsers and printer functions. In addition to syscall parsers, there can occur a need to create mpers printing functions, which then can be called from many places in the code (for example, printsiginfo_at). Such functions (printers) are marked in a special manner. For each possible nonnative target personality a library is being created, containing mpers variations of syscall parsers and printers. Only syscall parsers from files marked in a special manner and specially marked functions from such files are being recompiled and included in these libraries. generate_mpers_am.sh is called by bootstrap to find the files from strace_SOURCES which include MPERS_DEFS. During compilation, these files are being inspected for inclusions of DEF_MPERS_TYPE, and nonnative variations of each included type are being generated by an awk script. Mpers parser names are being modified during inclusions of syscallent headers for nonnative personalities. Pointers to printers are being stored in structs struct_printers, and a master pointer printers is being updated on every set_personality. * README-mpers: New README explaining how to use mpers support. * empty.h: New empty file. * generate_mpers_am.sh: New file. * mpers.awk: Likewise. * mpers.sh: Likewise. * mpers_test.sh: Likewise. * mpers_type.h: Likewise. * Makefile.am (strace_SOURCES): Add empty.h and mpers_type.h. (strace_CPPFLAGS, strace_LDFLAGS, strace_LDADD): Move to the beginning of the file. (strace_LDADD, noinst_LIBRARIES): Add libmpers-%.a. (EXTRA_DIST): Add mpers.awk, mpers.sh, mpers_test.sh. (BUILT_SOURCES, CLEANFILES): Add new generated files: native_printer_decls.h, native_printer_defs.h, printers.h, [HAVE_M32_MPERS] $(mpers_m32_targets), and [HAVE_MX32_MPERS] $(mpers_mx32_targets). (mpers_NAME, mpers_PREFIX, mpers_DEFS, mpers_INCLUDES, mpers_CPPFLAGS, mpers_sh_opts, libmpers_CPPFLAGS, libmpers_m[x]32_a_SOURCES, libmpers_m[x]32_a_CPPFLAGS, mpers_m[x]32_targets): New variables. (mpers-m[x]32.stamp, m[x]32_defs.h, m[x]32_funcs.h, printers.h, %_printer_decls.h, %_printer_defs.h, clean-local, native_printer_decls.h, native_printer_defs.h, $mpers_m[x]32_targets): New targets. * bootstrap: Add generate_mpers_am.sh. * configure.ac: Add AC_PROG_RANLIB. * m4/mpers.m4: Add HAVE_MPERS variable. Add $st_cv_mpers checks. * defs.h: Include mpers_type.h. Include printers.h, native_printer_decls.h, define MPERS_PRINTER_NAME. Redefine SYS_FUNC_NAME. Define MPERS_PRINTER_DECL. [HAVE_M32_MPERS]: define PERSONALITY1_INCLUDE_FUNCS, PERSONALITY1_INCLUDE_PRINTERS_DECLS, PERSONALITY1_INCLUDE_PRINTERS_DEFS for X86_64, X32. [HAVE_MX32_MPERS]: define PERSONALITY2_INCLUDE_FUNCS, PERSONALITY2_INCLUDE_PRINTERS_DECLS, PERSONALITY2_INCLUDE_PRINTERS_DEFS for X86_64. Add fallback definitions of PERSONALITY1_INCLUDE_FUNCS, PERSONALITY2_INCLUDE_FUNCS, PERSONALITY0_INCLUDE_PRINTERS_DECLS, PERSONALITY0_INCLUDE_PRINTERS_DEFS, PERSONALITY1_INCLUDE_PRINTERS_DECLS, PERSONALITY1_INCLUDE_PRINTERS_DEFS, PERSONALITY2_INCLUDE_PRINTERS_DECLS, PERSONALITY2_INCLUDE_PRINTERS_DEFS. * syscall.c: Include PERSONALITY1_INCLUDE_FUNCS, PERSONALITY2_INCLUDE_FUNCS, PERSONALITY0_INCLUDE_PRINTERS_DECLS, PERSONALITY0_INCLUDE_PRINTERS_DEFS, PERSONALITY1_INCLUDE_PRINTERS_DECLS, PERSONALITY1_INCLUDE_PRINTERS_DEFS, PERSONALITY2_INCLUDE_PRINTERS_DECLS, PERSONALITY2_INCLUDE_PRINTERS_DEFS. (printers): New struct. Update it when needed. * .gitignore: Add libmpers-m32.a, libmpers-mx32.a, m32_defs.h, m32_funcs.h, m32_printer_decls.h, m32_printer_defs.h, mpers-m32, mpers-m32.stamp, mpers-mx32, mpers-mx32.stamp, mpers.am, mx32_defs.h, mx32_funcs.h, mx32_printer_decls.h, mx32_printer_defs.h, native_printer_decls.h, native_printer_defs.h, and printers.h.
/external/strace/mpers.awk
|