[PATCH v5 3/4] Implement -e status=set option

Dmitry V. Levin ldv at altlinux.org
Wed Jul 3 17:42:41 UTC 2019


On Tue, Jul 02, 2019 at 02:26:42PM +0200, Paul Chaignon wrote:
> On Tue, Jul 02, 2019 at 02:26:44AM +0300, Dmitry V. Levin wrote:
> > On Fri, Jun 28, 2019 at 11:34:21AM +0200, Paul Chaignon wrote:
[...]
> > >  .TP
> > > +\fB\-e\ status\fR=\,\fIset\fR
> > > +Trace only system calls with the specified return status.  The default is
> > > +.BR status = all .
> > > +When using the
> > > +.B status
> > > +qualifier, because
> > > +.B strace
> > > +waits for system calls to return before deciding if they should be printed, the
> > > +order of events may not be preserved anymore.  For example, if a first system
> > > +call is being executed and another is called by a different thread,
> > > +.B strace
> > > +will print the first system call after the second.  The first system call will
> >
> > Do you mean that both entering and exiting of another syscall happen after
> > entering but before exiting of the first syscall?
> 
> If that second syscall exits first, yes.  What about the following?
> 
>   For example, if two system calls are executed by concurrent threads,
>   strace will first print both the entry and exit of the first system call
>   to exit, regardless of their respective entry time.  The entry and exit
>   of the second system call to exit will be printed afterwards.

I think it's not correct to say that the order of events is not preserved.
Traditionally syscalls are printed in the order of syscall entering.
When status filtering is enabled, they are printed in the order of syscall
exiting.


-- 
ldv
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <http://lists.strace.io/pipermail/strace-devel/attachments/20190703/92ff9ca9/attachment.bin>


More information about the Strace-devel mailing list