Message ID | 20180702175030.18621-14-f4bug@amsat.org |
---|---|
State | New |
Headers | show |
Series | linux-user: strace improvements | expand |
Le 02/07/2018 à 19:50, Philippe Mathieu-Daudé a écrit : > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > Tested-By: Guido Günther <agx@sigxcpu.org> > --- > linux-user/strace.c | 16 ++++++++++++++++ > linux-user/strace.list | 2 +- > 2 files changed, 17 insertions(+), 1 deletion(-) > > diff --git a/linux-user/strace.c b/linux-user/strace.c > index f80d655835..a85b4a10e5 100644 > --- a/linux-user/strace.c > +++ b/linux-user/strace.c > @@ -2008,6 +2008,22 @@ print_getsockname(const struct syscallname *name, > } > #endif > > +#if defined(TARGET_NR_recvfrom) > +static void > +print_recvfrom(const struct syscallname *name, > + abi_long arg0, abi_long arg1, abi_long arg2, > + abi_long arg3, abi_long arg4, abi_long arg5) > +{ > + print_syscall_prologue(name); > + print_raw_param("%d", arg0, 0); > + print_buf(arg1, arg2, 0); The content of the buffer is not relevant here as it is displayed before the data are received. I think you should only print the pointer and the length. Thanks, Laurent
diff --git a/linux-user/strace.c b/linux-user/strace.c index f80d655835..a85b4a10e5 100644 --- a/linux-user/strace.c +++ b/linux-user/strace.c @@ -2008,6 +2008,22 @@ print_getsockname(const struct syscallname *name, } #endif +#if defined(TARGET_NR_recvfrom) +static void +print_recvfrom(const struct syscallname *name, + abi_long arg0, abi_long arg1, abi_long arg2, + abi_long arg3, abi_long arg4, abi_long arg5) +{ + print_syscall_prologue(name); + print_raw_param("%d", arg0, 0); + print_buf(arg1, arg2, 0); + print_raw_param(TARGET_ABI_FMT_ld, arg2, 0); + print_flags(msg_flags, arg3, 0); + print_sockaddr_ptr(arg4, arg5, 1); + print_syscall_epilogue(name); +} +#endif + #if defined(TARGET_NR_sendto) static void print_sendto(const struct syscallname *name, diff --git a/linux-user/strace.list b/linux-user/strace.list index 019bf54850..82012353f6 100644 --- a/linux-user/strace.list +++ b/linux-user/strace.list @@ -1101,7 +1101,7 @@ { TARGET_NR_recv, "recv" , NULL, NULL, NULL }, #endif #ifdef TARGET_NR_recvfrom -{ TARGET_NR_recvfrom, "recvfrom" , NULL, NULL, NULL }, +{ TARGET_NR_recvfrom, "recvfrom" , NULL, print_recvfrom, NULL }, #endif #ifdef TARGET_NR_recvmmsg { TARGET_NR_recvmmsg, "recvmmsg" , NULL, NULL, NULL },