On 10/17/24 02:14, Ilya Leoshkevich wrote:
@@ -3312,10 +3358,26 @@ print_rt_sigprocmask(CPUArchState *cpu_env, const struct syscallname *name, case TARGET_SIG_SETMASK: how = "SIG_SETMASK"; break; } qemu_log("%s,", how); - print_pointer(arg1, 0); - print_pointer(arg2, 0); + print_target_sigset_t(arg1, arg3, 0); +} + +static void +print_rt_sigprocmask_ret(CPUArchState *cpu_env, const struct syscallname *name, + abi_long ret, abi_long arg0, abi_long arg1, + abi_long arg2, abi_long arg3, abi_long arg4, + abi_long arg5) +{ + if (is_error(ret)) { + print_pointer(arg2, 0); + } else { + print_target_sigset_t(arg2, arg3, 0); + } print_raw_param("%u", arg3, 1); print_syscall_epilogue(name);
I'm not keen on splitting operands across syscall completion. There are a few existing syscalls for which we print such results afterward: clock_gettime clock_getres wait4 waitpid but we're certainly not consistent about it. r~