Le 08/07/2020 à 17:24, Laurent Vivier a écrit : > errno of the target is returned as a negative value by the syscall, > not in the host errno variable. > > The emulation of the target syscall can return an error while the > host doesn't set an errno value. Target errnos and host errnos can > also differ in some cases. > > Fixes: c84be71f6854 ("linux-user: Extend strace support to enable argument > printing after syscall execution") > Cc: filip.boz...@syrmia.com > Signed-off-by: Laurent Vivier <laur...@vivier.eu> > --- > linux-user/strace.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/linux-user/strace.c b/linux-user/strace.c > index 5235b2260cdd..b42664bbd180 100644 > --- a/linux-user/strace.c > +++ b/linux-user/strace.c > @@ -731,7 +731,7 @@ print_syscall_err(abi_long ret) > > qemu_log(" = "); > if (ret < 0) { > - qemu_log("-1 errno=%d", errno); > + qemu_log("-1 errno=%d", (int)-ret); > errstr = target_strerror(-ret); > if (errstr) { > qemu_log(" (%s)", errstr); >
Applied to my linux-user-for-5.1 branch. Thanks, Laurent