strace -z flag

Paul Chaignon paul.chaignon at
Mon Jun 10 12:35:34 UTC 2019

Hi Marty,

I'm working on a patchset that should significantly extend your work on
-z.  In particular, output is buffered until a decision can be made about
the status of the syscall (e.g., failing).  Several new statuses are
supported, including successful (-Z), detached (strace detached before
exiting syscall), unfinished (in case of PTRACE_EVENT_EXIT), and
unavailable (fails to get the status), as well as a new qualifier syntax
to filter on those statuses ("-e status=...").

Burkhard Kohl (cc) worked on the first few versions of the patchset (with
-Z and buffering) and I've been rebasing his work and adding support for
the new qualifier.  You should find the three previous versions of the
patchset on the mailing list's archive.  I can cc you when I'll send the
next version if you want.


On Mon, Jun 10, 2019 at 01:29AM, marty leisner wrote:
> Hmmm....I added a -z flag over 15 years ago (to ignore failing syscalls).
> I never saw it documented or in the help -- so I was about to redo my patch.
> FWiW:
> 2002-11-06  Michal Ludvig  <mludvig at>
>         From Marty Leisner <leisner at>,
>         rewritten by mludvig:
>         * strace.c (not_failing_only): New.
>         (usage): Added -z switch description.
>         (main): Added -z switch parsing to not_failing_only variable.
>         * syscall.c (trace_syscall): Added not_failing_only handling.
> I looked at the code and there's still something for -z there...
> I just tried it and it still works.
> I'm looking to extend it to you can filter out certain errno's -- i.e. in a
> polling system, you can ignore EAGAIN and just look at real
> output and real errors.
> Marty

> --
> Strace-devel mailing list
> Strace-devel at

More information about the Strace-devel mailing list