[PATCH v4 1/3] Stop condition based on number of syscalls
Sahil Siddiq
icegambit91 at gmail.com
Sun Mar 19 14:49:22 UTC 2023
Hi,
On Saturday, 18 March 2023 17:25:12 IST Dmitry V. Levin wrote:
> Sorry for the long delay,
> see more comments below.
>
> On Sat, Mar 04, 2023 at 07:02:15PM +0530, Sahil Siddiq wrote:
> > Add option to detach strace after capturing a specified
> > number of syscalls.
>
> I suggest changing the first line of the commit message
> from "Stop condition based on number of syscalls"
> to "Introduce -l/--syscall-limit option".
>
> > * src/defs.h: Add syscall_limit variable.
>
> * src/defs.h (syscall_limit): New variable declaration.
>
> > * src/strace.c: Implementation of -l/--syscall-limit option.
>
> This is too terse.
>
> > * src/syscall.c: Move updation of syscall_limit here.
>
> * src/syscall.c (syscall_exiting_trace): Update syscall_limit.
>
> [...]
>
> > --- a/src/strace.c
> > +++ b/src/strace.c
> > @@ -84,6 +84,7 @@ int Tflag_scale = 1000;
> >
> > int Tflag_width = 6;
> > bool iflag;
> > bool count_wallclock;
> >
> > +unsigned long long syscall_limit = -1ULL;
> >
> > static bool nflag;
> > static int tflag_scale = 1000000000;
> > static unsigned tflag_width = 0;
>
> [...]
>
> > @@ -2432,6 +2438,11 @@ init(int argc, char *argv[])
> >
> > "build of strace");
> >
> > #endif
> >
> > break;
> >
> > + case 'l':
> > + syscall_limit = string_to_uint(optarg);
>
> string_to_uint() returns int and therefore not suitable here,
> let's use string_to_ulonglong() instead.
>
> > + if (syscall_limit <= 0)
> > + error_opt_arg(c, lopt, optarg);
>
> Apparently, all our string_to_* primitives return signed integers,
> this essentially means that syscall_limit has to be signed.
>
> Please add a test line to tests/options-syntax.test
> that would check that invalid -l arguments are rejected.
Thank you for the feedback. I'll send in a new patch with the changes.
Regards,
Sahil
More information about the Strace-devel
mailing list