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

Dmitry V. Levin ldv at altlinux.org
Fri Jul 5 23:20:08 UTC 2019


On Fri, Jul 05, 2019 at 07:05:24PM +0200, Paul Chaignon wrote:
> The status qualifier enables filtering based on the return status of
> syscalls.  -z and -Z become aliases for -e status=successful and -e
> status=failed.  Staged output is only enabled when at least one status is
> filtered, that is, when the set is incomplete.
> 
> * signal.c (popcount32): Move ...
> * defs.h (popcount32): ... here.
> (not_failing_only, failing_only): Remove.
> * filter_qualify.c (status_set): New number_set variable.
> (statuses): New variable for names of statuses.
> (statusstr_to_uint, qualify_status): New functions.
> (qual_options): Handle status qualifier.
> * number_set.c (get_number_setbit, is_complete_set): New functions.
> * number_set.h (is_complete_set): New prototype.
> (status_t): New enumeration for statuses.
> (status_set): Expose status_set variable.
> * strace.1.in: Document new status qualifier.
> * strace.c (not_failing_only, failing_only): Remove.
> (droptcb): Handle status=detached option.
> (init): Handle new status qualifier, set status_set variable on -z and -Z
> options, warning on -zZ, use is_complete_set.
> (maybe_switch_tcbs): Reopen memstream after tcb switch.
> (print_event_exit): Handle status=unfinished option.
> * syscall.c (syscall_entering_trace): Use is_complete_set.
> (syscall_exiting_trace): Use is_complete_set, handle status=unavailable
> option.
> * NEWS: Mention this change.
> 
> Signed-off-by: Paul Chaignon <paul.chaignon at gmail.com>
> ---
>  NEWS             |  2 ++
>  defs.h           | 24 ++++++++++++++++++++++--
>  filter_qualify.c | 33 ++++++++++++++++++++++++++++++++
>  number_set.c     | 17 +++++++++++++++++
>  number_set.h     | 13 +++++++++++++
>  signal.c         | 19 -------------------
>  strace.1.in      | 49 ++++++++++++++++++++++++++++++++++++++++++++++++
>  strace.c         | 45 ++++++++++++++++++++++++++++++++------------
>  syscall.c        | 25 +++++++++++++++---------
>  9 files changed, 185 insertions(+), 42 deletions(-)

Something is odd with this patch, it doesn't apply with the following diagnostics:

error: patch failed: defs.h:1451
error: defs.h: patch does not apply
error: patch failed: filter_qualify.c:57
error: filter_qualify.c: patch does not apply
error: patch failed: number_set.c:47
error: number_set.c: patch does not apply
error: patch failed: signal.c:138
error: signal.c: patch does not apply
error: patch failed: strace.c:812
error: strace.c: patch does not apply
error: patch failed: syscall.c:656
error: syscall.c: patch does not apply
Patch failed at 0003 Implement -e status=set option


-- 
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/20190706/f45d4c9a/attachment.bin>


More information about the Strace-devel mailing list