x32, mips n32: make printargs print full 64-bit syscall arguments

As most of x32 syscalls are regular x86_64 syscalls, they should be
printed by default as 64-bit syscalls, and syscall parsers at their
discretion might print syscalls differently.  This is already
implemented in 64-bit strace tracing x32 personality processes,
and now x32 strace will also behave this way.

Similar reasoning applies to mips n32.

* util.c (printargs) [HAVE_STRUCT_TCB_EXT_ARG]: Print syscall arguments
from ext_arg array using %llx format.
This commit is contained in:
Дмитрий Левин 2016-07-20 13:35:24 +03:00
parent b49c65cece
commit 9bd2382f21

12
util.c
View File

@ -1409,8 +1409,18 @@ printargs(struct tcb *tcp)
if (entering(tcp)) {
int i;
int n = tcp->s_ent->nargs;
for (i = 0; i < n; i++)
for (i = 0; i < n; i++) {
#if HAVE_STRUCT_TCB_EXT_ARG
# if SUPPORTED_PERSONALITIES > 1
if (current_personality == 1)
tprintf("%s%#lx", i ? ", " : "", tcp->u_arg[i]);
else
# endif
tprintf("%s%#llx", i ? ", " : "", tcp->ext_arg[i]);
#else
tprintf("%s%#lx", i ? ", " : "", tcp->u_arg[i]);
#endif
}
}
return 0;
}