mbox series

[v4,0/5] Add strace support for printing arguments for a group of selected syscalls

Message ID 20200811164553.27713-1-Filip.Bozuta@syrmia.com (mailing list archive)
Headers show
Series Add strace support for printing arguments for a group of selected syscalls | expand

Message

Filip Bozuta Aug. 11, 2020, 4:45 p.m. UTC
This series covers strace support for following syscalls:

   *truncate()     *munlock()          *clock_gettimeofday()
   *ftruncate()    *munlockall()       *clock_getitimer()
   *getsid()       *clock_getres()     *clock_setitimer()
   *mlock()        *clock_gettime()
   *mlockall()     *clock_settime()

Testing method:

    Mini test programs were written that run these syscalls for different arguments.
    Those programs were compiled (sometimes using cross-compilers) for the following
    architectures:

        * Intel 64-bit (little endian) (gcc)
        * Power pc 32-bit (big endian) (powerpc-linux-gnu-gcc)
        * Power pc 64-bit (big endian) (powerpc64-linux-gnu-gcc)

    The corresponding native programs were executed with strace, without using
    QEMU, on intel (x86_64) host.

    All applicable compiled programs were in turn executed with "-strace"
    through QEMU and the strace printing results obtained were the same
    ones gotten for native execution.

v2:
    * added patch that enables 'cpu_env' to be accessible from "strace.c"
    * cut and pasted "regpairs_aligned" from 'syscall.c' to 'qemu.h' so
      that it can be used for "print_truncate64" and "print_ftruncate64"
    * changed flag names from 'TARGET_MLOCKALL_MCL_*' to 'TARGET_MCL_*'
    * added target flag value 'TARGET_MCL_ONFAULT' for 'MCL_ONFAULT'
    * added 'print_syscall_ret_setitimer' for old value of the interval
      timer
    * added a function 'print_itimer_type' that prints the interval timer
      type

v3:

    * added patch that introduces an api that prints enumarted values
      with strace
    * used this new introduced api to print certain arguments of syscalls
      in patch 4
    * rebased the series to use the new 'print_syscall_err()'

v4:

    * modified 'print_itimerval()' function in 'syscall.c'

Filip Bozuta (5):
  linux-user: Make cpu_env accessible in strace.c
  linux-user: Add strace support for printing arguments of
    truncate()/ftruncate() and getsid()
  linux-user: Add strace support for printing arguments of syscalls used
    to lock and unlock memory
  linux-user: Add an api to print enumareted argument values with strace
  linux-user: Add strace support for printing arguments of some clock
    and time functions

 linux-user/aarch64/target_syscall.h    |   5 +-
 linux-user/alpha/target_syscall.h      |   5 +-
 linux-user/arm/target_syscall.h        |   6 +-
 linux-user/cris/target_syscall.h       |   5 +-
 linux-user/hppa/target_syscall.h       |   5 +-
 linux-user/i386/target_syscall.h       |   5 +-
 linux-user/m68k/target_syscall.h       |   6 +-
 linux-user/microblaze/target_syscall.h |   5 +-
 linux-user/mips/target_syscall.h       |   5 +-
 linux-user/mips64/target_syscall.h     |   5 +-
 linux-user/nios2/target_syscall.h      |   5 +-
 linux-user/openrisc/target_syscall.h   |   5 +-
 linux-user/ppc/target_syscall.h        |   5 +-
 linux-user/qemu.h                      |  39 +-
 linux-user/riscv/target_syscall.h      |   5 +-
 linux-user/s390x/target_syscall.h      |   5 +-
 linux-user/sh4/target_syscall.h        |   5 +-
 linux-user/sparc/target_syscall.h      |   5 +-
 linux-user/sparc64/target_syscall.h    |   5 +-
 linux-user/strace.c                    | 865 ++++++++++++++++---------
 linux-user/strace.list                 |  35 +-
 linux-user/syscall.c                   |  47 +-
 linux-user/tilegx/target_syscall.h     |   5 +-
 linux-user/x86_64/target_syscall.h     |   5 +-
 linux-user/xtensa/target_syscall.h     |   5 +-
 25 files changed, 694 insertions(+), 399 deletions(-)