diff mbox series

[2/3] linux-user: Add strace for sendto()

Message ID 20240807083508.28134-3-philmd@linaro.org
State Superseded
Headers show
Series linux-user: Trace sendto/recvfrom | expand

Commit Message

Philippe Mathieu-Daudé Aug. 7, 2024, 8:35 a.m. UTC
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 linux-user/strace.c    | 15 +++++++++++++++
 linux-user/strace.list |  2 +-
 2 files changed, 16 insertions(+), 1 deletion(-)

Comments

Richard Henderson Aug. 7, 2024, 10:55 a.m. UTC | #1
On 8/7/24 18:35, Philippe Mathieu-Daudé wrote:
> +#ifdef TARGET_NR_sendto
> +static void
> +print_sendto(CPUArchState *cpu_env, 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_sockfd(arg0, 0);
> +    print_buf(arg1, arg2, 0);

You still need to log arg2.


r~
Philippe Mathieu-Daudé Aug. 7, 2024, 12:18 p.m. UTC | #2
On 7/8/24 12:55, Richard Henderson wrote:
> On 8/7/24 18:35, Philippe Mathieu-Daudé wrote:
>> +#ifdef TARGET_NR_sendto
>> +static void
>> +print_sendto(CPUArchState *cpu_env, 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_sockfd(arg0, 0);
>> +    print_buf(arg1, arg2, 0);
> 
> You still need to log arg2.

Oops.
diff mbox series

Patch

diff --git a/linux-user/strace.c b/linux-user/strace.c
index 7064afb486..f55b62f0c9 100644
--- a/linux-user/strace.c
+++ b/linux-user/strace.c
@@ -3122,6 +3122,21 @@  print_bind(CPUArchState *cpu_env, const struct syscallname *name,
 }
 #endif
 
+#ifdef TARGET_NR_sendto
+static void
+print_sendto(CPUArchState *cpu_env, 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_sockfd(arg0, 0);
+    print_buf(arg1, arg2, 0);
+    print_flags(msg_flags, arg3, 0);
+    print_sockaddr(arg4, arg5, 1);
+    print_syscall_epilogue(name);
+}
+#endif
+
 #if defined(TARGET_NR_stat) || defined(TARGET_NR_stat64) || \
     defined(TARGET_NR_lstat) || defined(TARGET_NR_lstat64)
 static void
diff --git a/linux-user/strace.list b/linux-user/strace.list
index dfd4237d14..5a86419e7d 100644
--- a/linux-user/strace.list
+++ b/linux-user/strace.list
@@ -1285,7 +1285,7 @@ 
 { TARGET_NR_sendmsg, "sendmsg" , NULL, NULL, NULL },
 #endif
 #ifdef TARGET_NR_sendto
-{ TARGET_NR_sendto, "sendto" , NULL, NULL, NULL },
+{ TARGET_NR_sendto, "sendto" , NULL, print_sendto, NULL },
 #endif
 #ifdef TARGET_NR_setdomainname
 { TARGET_NR_setdomainname, "setdomainname" , NULL, NULL, NULL },