When the %addr argument can not be accessed, a double comma
is logged (the final qemu_log call prepend a comma). Call
print_raw_param with last=1 to avoid the extra comma.
Remove spurious space.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
linux-user/strace.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/linux-user/strace.c b/linux-user/strace.c
index b4d1098170..73f81e66fc 100644
--- a/linux-user/strace.c
+++ b/linux-user/strace.c
@@ -434,9 +434,9 @@ print_sockaddr(abi_ulong addr, abi_long addrlen, int last)
}
unlock_user(sa, addr, 0);
} else {
- print_raw_param("0x"TARGET_ABI_FMT_lx, addr, 0);
+ print_raw_param("0x"TARGET_ABI_FMT_lx, addr, 1);
}
- qemu_log(", "TARGET_ABI_FMT_ld"%s", addrlen, get_comma(last));
+ qemu_log(","TARGET_ABI_FMT_ld"%s", addrlen, get_comma(last));
}
static void
--
2.45.2
On Wed, 2024-08-07 at 14:43 +0200, Philippe Mathieu-Daudé wrote:
> When the %addr argument can not be accessed, a double comma
> is logged (the final qemu_log call prepend a comma). Call
> print_raw_param with last=1 to avoid the extra comma.
> Remove spurious space.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
> linux-user/strace.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/linux-user/strace.c b/linux-user/strace.c
> index b4d1098170..73f81e66fc 100644
> --- a/linux-user/strace.c
> +++ b/linux-user/strace.c
> @@ -434,9 +434,9 @@ print_sockaddr(abi_ulong addr, abi_long addrlen,
> int last)
> }
> unlock_user(sa, addr, 0);
> } else {
> - print_raw_param("0x"TARGET_ABI_FMT_lx, addr, 0);
> + print_raw_param("0x"TARGET_ABI_FMT_lx, addr, 1);
> }
> - qemu_log(", "TARGET_ABI_FMT_ld"%s", addrlen, get_comma(last));
> + qemu_log(","TARGET_ABI_FMT_ld"%s", addrlen, get_comma(last));
> }
>
> static void
I see why this works, but it feels a bit wrong semantically: addr is
not the last argument.
Wouldn't it be better to add commas to the preceding switch's cases?
Anyhow:
Acked-by: Ilya Leoshkevich <iii@linux.ibm.com>
On 10/2/24 00:54, Ilya Leoshkevich wrote:
> On Wed, 2024-08-07 at 14:43 +0200, Philippe Mathieu-Daudé wrote:
>> When the %addr argument can not be accessed, a double comma
>> is logged (the final qemu_log call prepend a comma). Call
>> print_raw_param with last=1 to avoid the extra comma.
>> Remove spurious space.
>>
>> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
>> ---
>> linux-user/strace.c | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/linux-user/strace.c b/linux-user/strace.c
>> index b4d1098170..73f81e66fc 100644
>> --- a/linux-user/strace.c
>> +++ b/linux-user/strace.c
>> @@ -434,9 +434,9 @@ print_sockaddr(abi_ulong addr, abi_long addrlen,
>> int last)
>> }
>> unlock_user(sa, addr, 0);
>> } else {
>> - print_raw_param("0x"TARGET_ABI_FMT_lx, addr, 0);
>> + print_raw_param("0x"TARGET_ABI_FMT_lx, addr, 1);
>> }
>> - qemu_log(", "TARGET_ABI_FMT_ld"%s", addrlen, get_comma(last));
>> + qemu_log(","TARGET_ABI_FMT_ld"%s", addrlen, get_comma(last));
>> }
>>
>> static void
>
> I see why this works, but it feels a bit wrong semantically: addr is
> not the last argument.
> Wouldn't it be better to add commas to the preceding switch's cases?
It would indeed.
Adding the comma manually in the final log is odd.
r~
© 2016 - 2026 Red Hat, Inc.