On Mon, 2024-10-21 at 18:50 -0700, Richard Henderson wrote:
> 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~

I wanted to stay as close as possible to strace here, but I don't
really have a strong preference. I will send a v2.

Reply via email to