[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL v2 14/24] linux-user: fix clone() strace
From: |
riku . voipio |
Subject: |
[Qemu-devel] [PULL v2 14/24] linux-user: fix clone() strace |
Date: |
Tue, 28 Jun 2016 22:12:48 +0300 |
From: Laurent Vivier <address@hidden>
Signed-off-by: Laurent Vivier <address@hidden>
Signed-off-by: Riku Voipio <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
---
linux-user/strace.c | 42 ++++++++++++++++++++----------------------
1 file changed, 20 insertions(+), 22 deletions(-)
diff --git a/linux-user/strace.c b/linux-user/strace.c
index 95f4338..cc10dc4 100644
--- a/linux-user/strace.c
+++ b/linux-user/strace.c
@@ -957,33 +957,31 @@ print_chmod(const struct syscallname *name,
#endif
#ifdef TARGET_NR_clone
+static void do_print_clone(unsigned int flags, abi_ulong newsp,
+ abi_ulong parent_tidptr, target_ulong newtls,
+ abi_ulong child_tidptr)
+{
+ print_flags(clone_flags, flags, 0);
+ print_raw_param("child_stack=0x" TARGET_ABI_FMT_lx, newsp, 0);
+ print_raw_param("parent_tidptr=0x" TARGET_ABI_FMT_lx, parent_tidptr, 0);
+ print_raw_param("tls=0x" TARGET_ABI_FMT_lx, newtls, 0);
+ print_raw_param("child_tidptr=0x" TARGET_ABI_FMT_lx, child_tidptr, 1);
+}
+
static void
print_clone(const struct syscallname *name,
- abi_long arg0, abi_long arg1, abi_long arg2,
- abi_long arg3, abi_long arg4, abi_long arg5)
+ abi_long arg1, abi_long arg2, abi_long arg3,
+ abi_long arg4, abi_long arg5, abi_long arg6)
{
print_syscall_prologue(name);
-#if defined(TARGET_M68K)
- print_flags(clone_flags, arg0, 0);
- print_raw_param("newsp=0x" TARGET_ABI_FMT_lx, arg1, 1);
-#elif defined(TARGET_SH4) || defined(TARGET_ALPHA)
- print_flags(clone_flags, arg0, 0);
- print_raw_param("child_stack=0x" TARGET_ABI_FMT_lx, arg1, 0);
- print_raw_param("parent_tidptr=0x" TARGET_ABI_FMT_lx, arg2, 0);
- print_raw_param("child_tidptr=0x" TARGET_ABI_FMT_lx, arg3, 0);
- print_raw_param("tls=0x" TARGET_ABI_FMT_lx, arg4, 1);
-#elif defined(TARGET_CRIS)
- print_raw_param("child_stack=0x" TARGET_ABI_FMT_lx, arg0, 0);
- print_flags(clone_flags, arg1, 0);
- print_raw_param("parent_tidptr=0x" TARGET_ABI_FMT_lx, arg2, 0);
- print_raw_param("tls=0x" TARGET_ABI_FMT_lx, arg3, 0);
- print_raw_param("child_tidptr=0x" TARGET_ABI_FMT_lx, arg4, 1);
+#if defined(TARGET_MICROBLAZE)
+ do_print_clone(arg1, arg2, arg4, arg6, arg5);
+#elif defined(TARGET_CLONE_BACKWARDS)
+ do_print_clone(arg1, arg2, arg3, arg4, arg5);
+#elif defined(TARGET_CLONE_BACKWARDS2)
+ do_print_clone(arg2, arg1, arg3, arg5, arg4);
#else
- print_flags(clone_flags, arg0, 0);
- print_raw_param("child_stack=0x" TARGET_ABI_FMT_lx, arg1, 0);
- print_raw_param("parent_tidptr=0x" TARGET_ABI_FMT_lx, arg2, 0);
- print_raw_param("tls=0x" TARGET_ABI_FMT_lx, arg3, 0);
- print_raw_param("child_tidptr=0x" TARGET_ABI_FMT_lx, arg4, 1);
+ do_print_clone(arg1, arg2, arg3, arg5, arg4);
#endif
print_syscall_epilogue(name);
}
--
2.1.4
- [Qemu-devel] [PULL v2 05/24] configure: Don't override ARCH=unknown if enabling TCI, (continued)
- [Qemu-devel] [PULL v2 05/24] configure: Don't override ARCH=unknown if enabling TCI, riku . voipio, 2016/06/28
- [Qemu-devel] [PULL v2 08/24] user-exec: Remove unused code for OSX hosts, riku . voipio, 2016/06/28
- [Qemu-devel] [PULL v2 03/24] linux-user: Use safe_syscall wrapper for fcntl, riku . voipio, 2016/06/28
- [Qemu-devel] [PULL v2 06/24] configure: Don't allow user-only targets for unknown CPU architectures, riku . voipio, 2016/06/28
- [Qemu-devel] [PULL v2 07/24] user-exec: Delete now-unused hppa and m68k cpu_signal_handler() code, riku . voipio, 2016/06/28
- [Qemu-devel] [PULL v2 11/24] linux-user: Support F_GETPIPE_SZ and F_SETPIPE_SZ fcntls, riku . voipio, 2016/06/28
- [Qemu-devel] [PULL v2 09/24] linux-user: Create a hostdep.h for each host architecture, riku . voipio, 2016/06/28
- [Qemu-devel] [PULL v2 10/24] linux-user: Fix wrong type used for argument to rt_sigqueueinfo, riku . voipio, 2016/06/28
- [Qemu-devel] [PULL v2 13/24] linux-user: add socket() strace, riku . voipio, 2016/06/28
- [Qemu-devel] [PULL v2 15/24] linux-user: update get_thread_area/set_thread_area strace, riku . voipio, 2016/06/28
- [Qemu-devel] [PULL v2 14/24] linux-user: fix clone() strace,
riku . voipio <=
- [Qemu-devel] [PULL v2 12/24] linux-user: add socketcall() strace, riku . voipio, 2016/06/28
- [Qemu-devel] [PULL v2 17/24] linux-user: fd_trans_host_to_target_data() must process only received data, riku . voipio, 2016/06/28
- [Qemu-devel] [PULL v2 18/24] linux-user: don't swap NLMSG_DATA() fields, riku . voipio, 2016/06/28
- [Qemu-devel] [PULL v2 16/24] linux-user: add missing return in netlink switch statement, riku . voipio, 2016/06/28
- [Qemu-devel] [PULL v2 21/24] linux-user: Provide safe_syscall for arm, riku . voipio, 2016/06/28
- [Qemu-devel] [PULL v2 20/24] linux-user: Provide safe_syscall for i386, riku . voipio, 2016/06/28
- [Qemu-devel] [PULL v2 22/24] linux-user: Provide safe_syscall for aarch64, riku . voipio, 2016/06/28
- [Qemu-devel] [PULL v2 24/24] linux-user: Provide safe_syscall for ppc64, riku . voipio, 2016/06/28
- [Qemu-devel] [PULL v2 19/24] linux-user: fix x86_64 safe_syscall, riku . voipio, 2016/06/28
- [Qemu-devel] [PULL v2 23/24] linux-user: Provide safe_syscall for s390x, riku . voipio, 2016/06/28