[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v5 1/6] linux-user: Extend strace support to enable argument
From: |
Laurent Vivier |
Subject: |
Re: [PATCH v5 1/6] linux-user: Extend strace support to enable argument printing after syscall execution |
Date: |
Fri, 19 Jun 2020 15:01:07 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.0 |
Le 19/06/2020 à 14:33, Filip Bozuta a écrit :
> From: Filip Bozuta <Filip.Bozuta@syrmia.com>
>
> Structure "struct syscallname" in file "strace.c" is used for "-strace"
> to print arguments and return values of syscalls. The last field of
> this structure "result" represents the calling function that prints the
> return values. This field was extended in this patch so that this function
> takes all syscalls arguments beside the return value. In this way, it
> enables
> "-strace" to print arguments of syscalls that have changed after the
> syscall
> execution. This extension will be useful as there are many syscalls that
> return values inside their arguments (i.e. listxattr() that returns the
> list
> of extended attributes inside the "list" argument).
>
> Implementation notes:
>
> Since there are already three existing "print_syscall_ret*" functions
> inside
> "strace.c" ("print_syscall_ret_addr()", "print_syscall_ret_adjtimex()",
> "print_syscall_ret_newselect()"), they were changed to have all syscall
> arguments
> beside the return value. This was done so that these functions don't
> cause build
> errors (even though syscall arguments are not used in these functions).
> There is code repetition in these functions for checking the return value
> and printing the approppriate error message (this code is also located in
> print_syscall_ret() at the end of "strace.c"). That is the reason why a
> function "syscall_print_err()" was added for this code and put inside
> these
> functions. Functions "print_newselect()" and
> "print_syscall_ret_newselect()"
> were changed to use this new implemented functionality and not store the
> syscall
> argument values in separate static variables.
>
> Signed-off-by: Filip Bozuta <Filip.Bozuta@syrmia.com>
> ---
> linux-user/qemu.h | 4 +-
> linux-user/strace.c | 110 ++++++++++++++++++++++---------------------
> linux-user/syscall.c | 2 +-
> 3 files changed, 61 insertions(+), 55 deletions(-)
>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
- [PATCH v5 0/6] Add strace support for printing arguments of selected syscalls, Filip Bozuta, 2020/06/19
- [PATCH v5 1/6] linux-user: Extend strace support to enable argument printing after syscall execution, Filip Bozuta, 2020/06/19
- Re: [PATCH v5 1/6] linux-user: Extend strace support to enable argument printing after syscall execution,
Laurent Vivier <=
- [PATCH v5 2/6] linux-user: Add strace support for a group of syscalls, Filip Bozuta, 2020/06/19
- [PATCH v5 3/6] linux-user: Add strace support for printing argument of syscalls used for extended attributes, Filip Bozuta, 2020/06/19
- [PATCH v5 4/6] linux-user: Add strace support for printing arguments of lseek(), Filip Bozuta, 2020/06/19
- [PATCH v5 5/6] linux-user: Add strace support for printing arguments of chown()/lchown(), Filip Bozuta, 2020/06/19
- [PATCH v5 6/6] linux-user: Add strace support for printing arguments of fallocate(), Filip Bozuta, 2020/06/19
- Re: [PATCH v5 0/6] Add strace support for printing arguments of selected syscalls, no-reply, 2020/06/19
- Re: [PATCH v5 0/6] Add strace support for printing arguments of selected syscalls, no-reply, 2020/06/19
- Re: [PATCH v5 0/6] Add strace support for printing arguments of selected syscalls, no-reply, 2020/06/19
- Re: [PATCH v5 0/6] Add strace support for printing arguments of selected syscalls, no-reply, 2020/06/19