[PATCH] xtensa: always retrieve all syscall arguments

Dmitry V. Levin ldv at altlinux.org
Mon May 6 23:15:01 UTC 2013


On Mon, May 06, 2013 at 03:17:55PM -0700, Chris Zankel wrote:
> The number of arguments specified in syscallent.h does not include
> registers that are skipped to align 64-bit arguments to even/odd
> register pairs. So, always retrieve all registers used for arguments.

The number of arguments specified in syscallent.h is used for two purposes:
- it is the number of syscall arguments to fetch from registers
  (and maybe memory on some architectures);
- it is also the number of syscall arguments to print by printargs
  (and in rare cases by other parsers).

Fetching all registers is not the best approach to fix the issue
for two reasons:
- printargs would still print wrong number of arguments;
- on xtensa, every extra argument fetch means extra upeek call.

I'd prefer to have syscallent.h fixed instead.



-- 
ldv
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://lists.strace.io/pipermail/strace-devel/attachments/20130507/730937c3/attachment.bin>


More information about the Strace-devel mailing list