On Fri, Aug 19, 2011 at 05:38:19PM +0200, Denys Vlasenko wrote:
> On Fri, 2011-08-19 at 00:02 +0400, Dmitry V. Levin wrote:
[...]
> > > --- strace.5/defs.h       2011-08-18 11:57:30.512416447 +0200
> > > +++ strace.6/defs.h       2011-08-18 11:46:56.349540479 +0200
> > > @@ -64,7 +64,7 @@
> > >  #define DEFAULT_ACOLUMN  40      /* default alignment column for results 
> > > */
> > >  #endif
> > >  #ifndef MAX_ARGS
> > > -# ifdef HPPA
> > > +# if defined HPPA || defined X86_64 || defined I386
> > >  #  define MAX_ARGS       6       /* maximum number of args to a syscall 
> > > */
> > >  # else
> > >  /* Way too big. Switch your arch to saner size after you tested that it 
> > > works */
> > 
> > What about other architectures?  Is there any with MAX_ARGS > 6?
> > Can we assume MAX_ARGS == 6 on linux?
> 
> I looked deeper. Apparently FREEBSD needs MAX_ARGS = 8. Also there's
> a bug in sys_mmap64 where it will try to access (but not write to)
> u_args[6,7] wrongly - see other mail.
> 
> My current knowledge is summed up by this comment:
> 
> /* Maximum number of args to a syscall.
>  *
>  * Make sure that all entries in all syscallent.h files
>  * have nargs <= MAX_ARGS!
>  * linux/<ARCH>/syscallent.h: ia64 has many syscalls with
>  * nargs = 8, mips has two with nargs = 7 (both are printargs),
>  * all others are <= 6.
>  * freebsd/i386/syscallent.h: one syscall with nargs = 8
>  * (sys_sendfile, looks legitimate)
>  * and one with nargs = 7 (sys_mmap, maybe it should have 6?).
>  * sunos4/syscallent.h: all are <= 6.
>  * svr4/syscallent.h: all are -1.
>  */
> 
> Basically, all linux arches sans ia64 should be ok with MAX_ARGS = 6.

All linux/ia64/syscallent.h entries with nargs == 8 are printargs.
I checked those 3 of them that have meaningful sys_name (other than SYS_*),
they definitely take less than 6 arguments.  So I suppose ia64 entries
with nargs == 8 are just wrong, and we can safely assume MAX_ARGS == 6
on linux.


-- 
ldv

Attachment: pgpsZsIHe5J6E.pgp
Description: PGP signature

------------------------------------------------------------------------------
Get a FREE DOWNLOAD! and learn more about uberSVN rich system, 
user administration capabilities and model configuration. Take 
the hassle out of deploying and managing Subversion and the 
tools developers use with it. http://p.sf.net/sfu/wandisco-d2d-2
_______________________________________________
Strace-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/strace-devel

Reply via email to